params数组中的键来自何处?

时间:2016-09-26 19:20:29

标签: ruby-on-rails ruby

之前已经问过这个问题,但这是一个更具体的例子。

在Ruby on Rails“入门”[http://guides.rubyonrails.org/getting_started.html]网页中,他们教你如何制作一个简单的博客。我正在关注其中的大部分内容,但我没有得到这个:article_id键值来自:

def create
    @article = Article.find(params[:article_id])
    ...some other stuff...
end

这位于web应用的commentsController中。所有与文章相关的编码都在articlesController中。

下划线是id所属类的指示符吗?意思是这个关键值首先找到文章params数组,然后是id all本身?像RoR的功能一样?或者这个符号是用于教学目的而不是实际上是指任何东西?

如果是后一种情况,您如何知道要使用的键值?

GET数据显示在URL中,但是如何在调用URL之前设置它以了解它是什么?

1 个答案:

答案 0 :(得分:4)

您的routes.rb定义了路由,匹配的路由中可能包含可变段,并且可通过控制器中的params哈希为您提供变量段。

如果您使用的是params[:article_id],那么引导您进行该操作的路线将包含以下内容:

 /articles/:article_id

params还将包含通过查询字符串或表单数据传递的任何值,但只要按ID查找记录,ID通常是URL的一个组件。

  

下划线是id所属类的指示符吗?

不,这只是名称的一部分。

  

如果是后一种情况,您如何知道要使用的键值?

因为您定义了要在路径文件中使用的密钥。