什么是Ruby on Rails控制器参数?

时间:2014-04-02 03:32:00

标签: ruby-on-rails ruby http

在服务器运行时,当终端通过哈希发送它们时,rails发送的参数是什么?这是我在谈论的终端部分。

Started POST "/topics/2/feeds" for 127.0.0.1 at 2014-04-01 21:01:17 -0700
Processing by FeedsController#create as JS
# HERE...
Parameters: {"feed"=>{"text"=>"Hello!"}, "commit"=>"Create Feed", "topic_id"=>"2"}

RailsGuides中,他们只是说它是url或POST数据中的查询字符串,但它只是Ruby代码吗?可以是JSON吗?

2 个答案:

答案 0 :(得分:0)

参数是一个简单的哈希,它通过查询字符串或POST数据从客户端接收,就像文档所述。要在控制器中访问它,Rails会使params哈希可用。

对于上面的示例,您只需使用params[:id]即可获得值2。如果使用Rails表单,Rails默认会有一些键和值。您可以在客户端上指定的其他人,通常使用某种ajax查询。

答案 1 :(得分:0)

这不是一个哈希。您在控制台中看到的内容Parameters: {"id"=>"2"}只是人类可读性参数的表示。在您提供的特定情况下,参数在url:

中给出
GET /topics/2

如果您查看config/routes.rb,您可能会找到如下行:

resources :topics

这意味着TopicsController将被视为资源,当您提出此请求时,

GET /topics/2

Rails会将其解释为您要求标识为2的主题资源。因此,请求将指向您的控制器的方法show,并且您的params哈希将具有值为id的{​​{1}}密钥。

了解Rails Routing