Ruby on rails 保存rails表单时出现问题
我有一个RubyonRails页面来编辑用户配置文件。表单正确显示用户名和电子邮件。当我在文本框中更改名称并单击“更新”时,我返回到“编辑配置文件”页面,并显示消息“配置文件已成功更新”。问题是我将名称更改为的值没有保存到数据库中 没有错误,服务器输出中的参数看起来正确 正在处理UsersController更新(用于 127.0.0.1在2009-05-19 22:00:48时[输入]参数: {“用户”=>{“名称”=>“新名称”, “电子邮件”=>”test@test.com"}, “提交”=>“更新”, “操作”=>“更新”、“_方法”=>“放置”, “真实性令牌”=>“59c79fa90aaf5558aaab8cddef6acb7a4c7c55c3”, “id”=>“1”,“控制器”=>“用户”} 我错过了什么 编辑_profile.html.erbRuby on rails 保存rails表单时出现问题,ruby-on-rails,Ruby On Rails,我有一个RubyonRails页面来编辑用户配置文件。表单正确显示用户名和电子邮件。当我在文本框中更改名称并单击“更新”时,我返回到“编辑配置文件”页面,并显示消息“配置文件已成功更新”。问题是我将名称更改为的值没有保存到数据库中 没有错误,服务器输出中的参数看起来正确 正在处理UsersController更新(用于 127.0.0.1在2009-05-19 22:00:48时[输入]参数: {“用户”=>{“名称”=>“新名称”, “电子邮件”=>”test@test.com"}, “提交”
<% 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])