Rails:访问路段默认值

时间:2013-09-04 20:57:09

标签: ruby-on-rails parameters routes defaults

我想访问我为特定路线定义的默认值。但Rails拒绝将其放入 params 哈希中。例如:

routes.rb中:

get "packages(/:display)", to: "packages#index", defaults: { display: 'grid' }

我打电话的网址:

http://localhost:3000/packages

params 哈希变为:

{"action"=>"index", "controller"=>"packages"}

但我更喜欢的是:

{"action"=>"index", "controller"=>"packages", "display"=>"grid"}

这个问题真的没什么大不了的。但Rails声称DRY声称我可以保留 routes.rb 中的默认值,而不是在我的控制器或查看代码中重复它们。

我的目的是显示结果网格或结果列表。如果用户没有指定某个视图,我想使用网格样式。

(我正在使用Rails 4。)

1 个答案:

答案 0 :(得分:0)

我刚刚在Rails 4应用程序中测试了以下路线。

get "packages(/:display)", to: "packages#index", defaults: { display: "grid" }
  • /packagesparams[:display]"grid"
  • /packages/listparams[:display]"list"

很可能你还有其他路线在玩这个,这就防止了我上面列出的相同结果。

如果发现此类冲突,我们如何避免可选段(结果与上述相同)

get "packages",          to: "packages#index", display: "grid"
get "packages/:display", to: "packages#index"