如何从模块重定向?

时间:2017-04-28 16:20:49

标签: ruby-on-rails ruby

我尝试了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}},但我很难将此模块转换为关注点。

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