我的艺术家控制器,编辑方法看起来像这样
def edit
@user = User.find(params[:id])
end
在视图(artists / edit.html.erb)中,我有:
<%= form_for(@artist) do |f| %>
<ul>
<li class="clearfix">
<%= f.label :name %>
<%= f.text_field :name %>
</li>
...
</ul>
<%= image_submit_tag('update.png', :class => 'submit') %>
<% end %>
然而,渲染时。表单元素提交给用户控制器,更新方法(即)。
如何将其提交给艺术家控制器,改为更新方法?
答案 0 :(得分:1)
我认为您想要更改form_for参数:
<%= form_for(@artist, :url => edit_user_path(@artist)) do |f| %>
<ul>
<li class="clearfix">
<%= f.label :name %>
<%= f.text_field :name %>
</li>
...
</ul>
<%= image_submit_tag('update.png', :class => 'submit') %>
<% end %>
Cf http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-form_for
另外,你确定你的@artist指向@user吗?我想你的意思是,在你的控制器中:
@artist = User.find....