Ruby on rails 保存rails表单时出现问题

Ruby on rails 保存rails表单时出现问题,ruby-on-rails,Ruby On Rails,我有一个RubyonRails页面来编辑用户配置文件。表单正确显示用户名和电子邮件。当我在文本框中更改名称并单击“更新”时,我返回到“编辑配置文件”页面,并显示消息“配置文件已成功更新”。问题是我将名称更改为的值没有保存到数据库中 没有错误,服务器输出中的参数看起来正确 正在处理UsersController更新(用于 127.0.0.1在2009-05-19 22:00:48时[输入]参数: {“用户”=>{“名称”=>“新名称”, “电子邮件”=>”test@test.com"}, “提交”

我有一个RubyonRails页面来编辑用户配置文件。表单正确显示用户名和电子邮件。当我在文本框中更改名称并单击“更新”时,我返回到“编辑配置文件”页面,并显示消息“配置文件已成功更新”。问题是我将名称更改为的值没有保存到数据库中

没有错误,服务器输出中的参数看起来正确

正在处理UsersController更新(用于 127.0.0.1在2009-05-19 22:00:48时[输入]参数: {“用户”=>{“名称”=>“新名称”, “电子邮件”=>”test@test.com"}, “提交”=>“更新”, “操作”=>“更新”、“_方法”=>“放置”, “真实性令牌”=>“59c79fa90aaf5558aaab8cddef6acb7a4c7c55c3”, “id”=>“1”,“控制器”=>“用户”}

我错过了什么

编辑_profile.html.erb

<% form_for @profile, :url => {:action => "update", :id => @profile} do |f| %>
  <%= f.error_messages %> 
  <p>Name: <%= f.text_field :name %></p>
  <p>Email: <%= f.text_field :email %></p>
  <%= f.submit "Update" %>
<% end %>
编辑: 是的,这是一个命名问题,为了解决这个问题,我改变了

if @profile.update_attributes(params[:profile])


字段的名称与传递给update_attributes方法的名称不匹配

检查表单字段的名称(使用firebug),结果将是“name”等

但您正在传递一个名为“params”的数组:

表单字段应称为“profile[name]”,这样才能正常工作

如果您检查development.log,您应该会看到从未调用过更新

if @profile.update_attributes(params[:profile])
if @profile.update_attributes(params[:user])
update_attributes(params[:profile])