I have a simple User form with a simple Usercontroller. The ''edit'' action looks like: def edit @user = current_user end In the view: <% form_for(@user) do |f| %> blah blah <% end %> What it generates is: <form action="/user.%23%3Cuser:0x34a498c%3E" class="edit_user" id="edit_user_196" method="post"> <div style="margin:0;padding:0"><input name="_method" type="hidden" value="put" /> <input class="inline" id="user_login" name="user[login]" size="30" type="text" />. <input src="/images/buttons/registreren.png?1239978560" type="image" /> </form> How does that form ''action'' field becomes so b0rked? Running Rails 2.3.2 Harm
On 20 Apr 2009, at 20:11, harm wrote:> > I have a simple User form with a simple Usercontroller. > The ''edit'' action looks like: > def edit > @user = current_user > end > > In the view: > <% form_for(@user) do |f| %> > blah blah > <% end %> > > What it generates is: > <form action="/user.%23%3Cuser:0x34a498c%3E" class="edit_user" > id="edit_user_196" method="post"> > <div style="margin:0;padding:0"><input name="_method" type="hidden" > value="put" /> > <input class="inline" id="user_login" name="user[login]" size="30" > type="text" />. > <input src="/images/buttons/registreren.png?1239978560" > type="image" /> > </form> > > How does that form ''action'' field becomes so b0rked? >Is user an active record object ? Fred> Running Rails 2.3.2 > > Harm > >
That was my initial hunch as well. And it is an AR object. I believe that the fact that the user is a singleton resource matters. E.g. map.resouce :user, :controller => "Users" I modified the form_for and passed an explicit path with :url => user_path. This seems to work. But it is vert strange Rails doesn''t pick this up automatically. Then again maybe I''m defining the resource wrong. On Apr 21, 10:50 am, Frederick Cheung <frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> On 20 Apr 2009, at 20:11, harm wrote: > > > > > > > I have a simple User form with a simple Usercontroller. > > The ''edit'' action looks like: > > def edit > > @user = current_user > > end > > > In the view: > > <% form_for(@user) do |f| %> > > blah blah > > <% end %> > > > What it generates is: > > <form action="/user.%23%3Cuser:0x34a498c%3E" class="edit_user" > > id="edit_user_196" method="post"> > > <div style="margin:0;padding:0"><input name="_method" type="hidden" > > value="put" /> > > <input class="inline" id="user_login" name="user[login]" size="30" > > type="text" />. > > <input src="/images/buttons/registreren.png?1239978560" > > type="image" /> > > </form> > > > How does that form ''action'' field becomes so b0rked? > > Is user an active record object ? > > Fred > > > Running Rails 2.3.2 > > > Harm
Harm wrote:> That was my initial hunch as well. And it is an AR object. > > I believe that the fact that the user is a singleton resource matters. > E.g. > map.resouce :user, :controller => "Users"[...] You misspelled "resource" here. Is it also misspelled in your actual code? If so, that could be the problem... Best, -- Marnen Laibow-Koser http://www.marnen.org marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org -- Posted via http://www.ruby-forum.com/.
Ow I did misspelled it. I didn''t do so in my code. On Apr 21, 4:10 pm, Marnen Laibow-Koser <rails-mailing-l...@andreas- s.net> wrote:> Harm wrote: > > That was my initial hunch as well. And it is an AR object. > > > I believe that the fact that the user is a singleton resource matters. > > E.g. > > map.resouce :user, :controller => "Users" > > [...] > > You misspelled "resource" here. Is it also misspelled in your actual > code? If so, that could be the problem... > > Best, > -- > Marnen Laibow-Koserhttp://www.marnen.org > mar...-sbuyVjPbboAdnm+yROfE0A@public.gmane.org > -- > Posted viahttp://www.ruby-forum.com/.
Just make users a collection (map.resources :users), then everything will work fine. Or if your really want it to be a singleton (bad idea, not restfull if you have more than 1 user in your app), then use form_for :user, :object => @user. Dmitry
Thank you Dmitry. I''ll ponder a bit on your remark, my initial gut feeling is that I do want a singleton resource as I never want to expose more than 1 user. Ever. Which is restful. But I''ll think about it. On Apr 21, 4:45 pm, Dmitry Sokurenko <Dmitry.Sokure...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Just make users a collection (map.resources :users), then everything > will work fine. Or if your really want it to be a singleton (bad idea, > not restfull if you have more than 1 user in your app), then use > form_for :user, :object => @user. > > Dmitry
Most time, you can put a reference manual in your desk. When you can''t confirm the settings , you can find it very quickly. For example : Rails: Up and Running, Second Edition Appendix B http://cachefly.oreilly.com/oreilly/pdfs/9780596522001_appendixB.pdf On Apr 21, 10:55 pm, Harm <harmaa...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Thank you Dmitry. > I''ll ponder a bit on your remark, my initial gut feeling is that I do > want a singleton resource as I never want to expose more than 1 user. > Ever. Which is restful. But I''ll think about it. > > On Apr 21, 4:45 pm, Dmitry Sokurenko <Dmitry.Sokure...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> > wrote: > > > Just make users a collection (map.resources :users), then everything > > will work fine. Or if your really want it to be a singleton (bad idea, > > not restfull if you have more than 1 user in your app), then use > > form_for :user, :object => @user. > > > Dmitry