rails 3形式抛出undefined方法`model_name'

时间:2011-07-14 14:34:51

标签: ruby-on-rails-3 forms models

userhome_controller:

  def edit_reviewer_email
    @user = User.find(params[:id])
  end

edit_reviewer_email:

<div class="pagetop center">
    <%= form_for @user, update_reviewer_email_userhome_path(@user) do |f| %>
        <%= f.label :email %><br />
        <%= f.text_field :email, :size => 1 %>
        <%= f.submit %>
    <% end %>
</div>

错误:

undefined method `stringify_keys' for "/userhome/18/update_reviewer_email":String

当通过不同的控制器访问模型时,我应该使用form_tag吗?

如果你知道的话,我正在寻找一个涵盖各种形式的rails 3教程。 谢谢!

1 个答案:

答案 0 :(得分:4)

您的控制器需要将其请求限制为单个记录(您可以使用find):

@user = User.find(params[:id])

或者如果你想坚持使用where声明:

@user = User.where("id = ?", params[:id]).first