rails 4按钮更新用户配置文件

时间:2013-09-27 11:07:37

标签: ruby-on-rails link-to

hy,我正在尝试更新用户资源中的单个字段。要更新的字段是“locale”,它是字符串类型。

我有一个表格并且有效:

 <%= form_for current_user do |f| %>
       <%= f.select :locale, [['En', 'en'], ['It', 'it']] %>
       <%= f.submit %>
 <% end %>

现在我正在尝试使用链接或按钮更新相同的字段:

 <%= current_user.locale = 'fr'  %>

 <%= button_to "update" ,current_user,method: :patch %>

 <%= button_to "update" ,user_path(current_user),method: :patch %>

但这都不起作用。

问题是请求,实际上Web服务器没有重新获取current_user参数:

 {"_method"=>"patch",
 "authenticity_token"=>"7X6QdD4DGxsXaETT86/8Ut4xyuOICaxirs4IjmZl7jY=",
 "locale"=>"en",
 "id"=>"1"}

没有current_users参数。

我尝试过使用link_to,但问题是一样的:

<%= link_to "update", current_user ,method: :patch %>

我不知道。你能救我吗?

1 个答案:

答案 0 :(得分:0)

由于您没有使用表单,因此未将参数发送回服务器的事实是预期的。

为了传回参数,你必须:

  1. 使用表格(如您所做)或
  2. 传递按钮的网址中的参数:button_to 'update', user_path(param_name: 'param_value')
  3. 在第二种情况下,您必须在操作中搜索相应的参数,例如params[:param_name]