【发布时间】:2013-08-01 18:37:47
【问题描述】:
所以我看到其他人对此感到困惑,我也阅读了其他答案,但我仍然感到困惑。
在删除请求期间,信息如何存储和解析为 params 哈希?我了解它在向其提交信息方面的工作原理。即,当发出 Put、Post 或 Get 请求时,我知道信息是通过 params hash 传递给相应的控制器操作的。
但是,基于用户部分 (_user.html.erb) 中的以下代码:
<li>
<%= gravatar_for user, size: 52 %>
<%= link_to user.name, user %>
<% if current_user.admin? && !current_user?(user) %>
<%= link_to "delete", user, method: delete,
data: {confirm: "You sure?"} %>
<% end %>
</li>
以及自动路由到的 DESTROY 操作中的代码:
def destroy
User.find(params[:id]).destroy
flash[:success] = "User destroyed."
redirect_to users_url
end
我不明白 params 哈希如何获取存储在其中的用户 ID。我会理解它是否是 params[:user][:id] 因为我们正在发布具有其属性列表的用户。但是,我不明白 id 是如何直接存储到 params 哈希中的。这已经困扰了我一段时间,因此请提供任何见解。
【问题讨论】:
-
杰克,看看 link_to() 助手创建的 html。此外,如果您想查看参数中的内容,请安装 pry (pry-full)(非常有用的 gem)并在控制器的 destroy 方法中粘贴 binding.pry 以查看最终传入的内容
标签: ruby-on-rails ruby params