我有一个从用户索引视图到友谊控制器的按钮。 但我无法弄清楚如何正确传递散列,这是强参数所需的。
用户索引视图:
<% @users.each do |user| %>
<tr>
<td><%= button_to 'Add friend', friendships_path(:friend_id => user.id), method: :post %></td>
</tr>
<% end %>
友谊控制器
def user_params
params.require(:user).permit(:friend_id)
end
我如何通过&#39;:用户&#39;哈希以及&#39;:friend_id&#39; ?
提前致谢。
答案 0 :(得分:0)
您可能最好使用以下内容:
def user_params
params.permit(:friend_id)
end
<强> PARAMS 强>
系统的 params 部分基本上可以通过params hash
和“允许”基于它的相关值来实现,如下所示......
当您提交form_for
(因为这是围绕ActiveRecord对象构建)时,您将收到一个这样的参数哈希:
params => {
"[Model]" => {
"param_1" => "value",
"param_2" => "value",
"param_3" => "value"
}
}
在这种情况下,您将使用require
中的strong_params
标记:
def strong_params
params.require(:model).permit(:param_1, :param_2, :param_3)
end
-
你所拥有的情况是你想使用一个“级别”的params hash:
params => {
"friendly_id" => "value"
}
在这种情况下,您需要使用以下内容:
def strong_params
params.permit(:friendly_id)
end
<强>日志强>
让这个工作的最好方法是观察你正在处理的params哈希。
您可以查看日志并查看每次向Rails发出请求时输出的Params哈希 - 我会查看它,并确定params哈希的结构以确定strong_params
方法的类型你应该打电话