我在处理作用域方面遇到了一些困难。我希望有少量的方法可以在所有视图和控制器中使用。 假设代码如下:
def login_role
if current_user
return current_user.role
end
return nil
end
如果我把它包含在application_helper.rb中,那么它只对所有视图可用,但不对所有控制器可用。
如果我将其包含在application_controller.rb中,则它对所有控制器可用,但不对所有视图可用。
我在处理作用域方面遇到了一些困难。我希望有少量的方法可以在所有视图和控制器中使用。 假设代码如下:
def login_role
if current_user
return current_user.role
end
return nil
end
在您的ApplicationController
中使用helper_method
方法,以使视图可以访问它。
class ApplicationController < ActionController::Base
helper_method :login_role
def login_role
current_user ? current_user.role : nil
end
end
helper LoginMethods
require 'my_lib'
lib
目录中的文件已经被框架要求了。您还需要在application_controller.rb
和application_helper.rb
中调用include MyLib
。 - Dean Brundage
RAILS_ROOT/lib
中。 - Dean Brundagehelper_method
适用于单个方法。helper
接受一个模块作为参数。 - Dean Brundage