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