所以我看到其他人对此感到困惑,我也阅读了其他答案,但我仍然感到困惑。
在删除请求期间,信息是如何存储和解析到 params 哈希中的?我了解它在向其提交信息方面的工作原理。即,当发出 Put、Post 或 Get 请求时,我知道信息是通过参数哈希传递给相应的控制器操作的。
但是,基于用户部分 (_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 哈希中的。这一直困扰我一段时间,所以请任何见解将不胜感激。