所以我已經看到其他人一直在困惑我,我已經閱讀了其他答案,但我仍然困惑。Ruby on Rails教程困惑於Params哈希如何工作
如何在刪除請求期間存儲信息並將其解析到params散列中?我瞭解它如何在向其提交信息方面發揮作用。即當發佈Put,Post或Get請求時,我知道信息通過params散列傳遞給相應的控制器動作。
然而,根據在用戶部分(_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散列如何獲取存儲在其中的用戶標識。我會理解,如果它是params [:user] [:id],因爲我們發佈具有屬性列表的用戶。但是,我不明白id如何直接存儲到params散列中。這一直困擾了我一段時間,所以請任何有識之士將不勝感激。
Jake,看看link_to()助手創建的html。另外,如果你想查看參數中的內容,安裝pry(pry-full)(非常有用的gem),並在你的控制器的destroy方法中粘貼一個binding.pry,以查看 –