在服务器运行时,当终端通过哈希发送它们时,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吗?
答案 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}}密钥。