4

只是好奇,参数应该是包含有关浏览器请求的详细信息的哈希值。但是 debug(params) 返回

controller: controllername 
action:actionname
.
.
.

它包含这些键值对是否有任何特定原因?

4

3 回答 3

1

params来自三个来源

  • 网址
  • 查询字符串(GET)
  • 发布数据通常通过表单提交(POST)

控制器名称和动作名称来自 URL。假设 url 是“article/123”,Rails 会知道:

  • 控制器是ArticlesController- 因为“文章”是 url 的第一部分
  • 动作是#show,因为请求是GET并且有一个ID

一旦您在routes.rb. 还记得您需要为自定义路由分配控制器名称和操作吗?

于 2013-05-17T05:03:04.603 回答
1

我只是在推测,但这可能是在 Rails 建立在 Rack 之前的日子。如今,您只需将这些东西放入 Rack 环境中(它们现在可能就在其中)。它们可能仍然存在以实现向后兼容性。

于 2013-05-17T06:04:02.817 回答
0

因此,您可以查询之前/之后/周围过滤器、视图(不是最佳实践)和多个控制器之间共享的方法

于 2013-05-17T04:16:53.187 回答