1

我有一个简单的问题: Rails 中routes.rb的变量范围是什么。更具体地说:我可以在这个特定文件中引用ApplicationController的变量吗?就像在视图中一样?

我在问,因为我无法让这个 lambda 工作:

root to: "users#edit", constraints: lambda { |req| !@current_user.nil? }, as: :authenticated_root

@current_user 在 application_controller.rb 中包含的模块中声明,但在routes.rb中不可见

据推测,我忽略了手册中的一些重要页面......

4

1 回答 1

2

不,路由约束无权访问控制器中设置的变量。

您确实应该将您的逻辑移至before_action(>= Rails 4) 或before_filter(<= Rails 3.2) 中的控制器。

于 2013-09-17T20:36:35.580 回答