加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Ruby on Rails教程混淆了Params hash的工作原

发布时间:2020-12-17 02:45:53 所属栏目:百科 来源:网络整理
导读:所以我看到其他人一直把我弄糊涂了,我已经阅读了其他答案,但我仍然感到困惑. 在删除请求期间如何将信息存储和解析为params哈希?我理解它在向其提交信息方面的工作原理.即,当发出Put,Post或Get请求时,我理解信息通过params散列传递给相应的控制器动作. 但是,
所以我看到其他人一直把我弄糊涂了,我已经阅读了其他答案,但我仍然感到困惑.

在删除请求期间如何将信息存储和解析为params哈希?我理解它在向其提交信息方面的工作原理.即,当发出Put,Post或Get请求时,我理解信息通过params散列传递给相应的控制器动作.

但是,基于用户partial(_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 hash如何获取存储在其中的用户ID.我知道它是否是params [:user] [:id],因为我们发布了具有其属性列表的用户.但是,我不知道如何将id直接存储到params哈希中.这一直困扰我一段时间,所以请任何见解将不胜感激.

解决方法

它基于rails路由模型.

如果您使用资源:config / routes.db中的user,它将创建以下路由(您可以通过运行rake路由来查看它):

删除users /:id

符号:id表示在用户/调用url后添加的任何内容都将在params中设置为:id. (在这种情况下,对于DELETE HTTP动词)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读