如何提交给Artist控制器,改为更新方法

时间:2010-11-15 07:36:16

标签: ruby-on-rails

我的艺术家控制器,编辑方法看起来像这样

  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 %>

然而,渲染时。表单元素提交给用户控制器,更新方法(即)。

如何将其提交给艺术家控制器,改为更新方法?

1 个答案:

答案 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....