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 %>
我不知道。你能救我吗?
答案 0 :(得分:0)
由于您没有使用表单,因此未将参数发送回服务器的事实是预期的。
为了传回参数,你必须:
button_to 'update', user_path(param_name: 'param_value')
在第二种情况下,您必须在操作中搜索相应的参数,例如params[:param_name]