Ruby on rails Rails 4中不同控制器上的干成型处理
我有两个表单/视图,它们共享相似的输入参数;但每个视图都应该由单独的控制器处理,因为每个视图都需要独特的附加逻辑。每个控制器都有大量与之相关的输入参数。最佳做法是什么Ruby on rails Rails 4中不同控制器上的干成型处理,ruby-on-rails,variables,parameters,dry,controllers,Ruby On Rails,Variables,Parameters,Dry,Controllers,我有两个表单/视图,它们共享相似的输入参数;但每个视图都应该由单独的控制器处理,因为每个视图都需要独特的附加逻辑。每个控制器都有大量与之相关的输入参数。最佳做法是什么 我知道这个问题听起来像是“控制器之间共享变量”的事情;但是如果我使用before_filter方法;我必须再次声明表单中的每个输入参数。如果我在父应用程序控制器中定义了一个新方法,或者为输入参数提取创建了一个助手方法;子控制器中的其他方法无法访问变量。。。有更优雅的解决方案吗?我经常发现在控制器之外需要一些可重用的业务逻辑。在这些
我知道这个问题听起来像是“控制器之间共享变量”的事情;但是如果我使用before_filter方法;我必须再次声明表单中的每个输入参数。如果我在父应用程序控制器中定义了一个新方法,或者为输入参数提取创建了一个助手方法;子控制器中的其他方法无法访问变量。。。有更优雅的解决方案吗?我经常发现在控制器之外需要一些可重用的业务逻辑。在这些情况下,我将在我的/lib文件夹中定义一个新对象,以便在多个位置使用它。比如说,
# lib/my_business_logic/do_stuff.rb
module MyBusinessLogic
class DoStuff
def self.dostuff(params)
# do stuff
end
end
end
然后我可以打电话:
result = MyBusinessLogic::DoStuff.dostuff(params)
我非常确定,如果您在应用程序控制器中定义一个方法,它的变量是可访问的。我已经有了一个方法,只要在每个控制器中声明before_操作,就可以跨控制器定义@current_user,而不会出现问题。