RoR中的routes.rb的变量范围是什么?

时间:2013-09-17 20:33:35

标签: ruby-on-rails ruby

我有一个简单的问题: 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中不可见

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

1 个答案:

答案 0 :(得分:2)

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

你真的应该在before_action(> = Rails 4)或before_filter(< = Rails 3.2)中将你的逻辑移动到控制器。