我尝试了Google 我可以在rails模块中重定向吗但是无法想出任何东西。基本上,我有一个方法,我将用于几个控制器。
LIB / route_module.rb
include RouteModule
before_filter :thingz, only: [:display_user_chocolate]
# private
def thingz
RouteModule.user_has_active_chocolate(params["chocolate_id"], params["user_id"])
end
应用程序/控制器/ user_controllers.rb
ActiveSupport::Concerns
但是......无论什么时候我运行它......一旦它命中了redirect_to就会中断。
对于RouteModule,未定义的方法`redirect_to':模块
我的另一个选择是使用{{1}},但我很难将此模块转换为关注点。
答案 0 :(得分:1)
当您包含模块时,它充当mixin。也就是说,你include
并在你的类的上下文中获取模块的所有方法。正确的方法是:
module RouteModule
def user_has_active_chocolate(c_id, u_id) # NO self
...
end
end
在课堂上:
include RouteModule
def thingz
# NO module method call (NO RouteModule)
user_has_active_chocolate(params["chocolate_id"], params["user_id"])
end