Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 由多个控制器和模型共享的代码——最好存放在哪里?_Ruby On Rails_Ruby_Helpers - Fatal编程技术网

Ruby on rails 由多个控制器和模型共享的代码——最好存放在哪里?

Ruby on rails 由多个控制器和模型共享的代码——最好存放在哪里?,ruby-on-rails,ruby,helpers,Ruby On Rails,Ruby,Helpers,这是一个新手rails设计问题。假设我希望我的一些常用功能位于一组帮助器类中(作为类方法或实例方法) 我想在控制器(不是视图)内使用这些辅助对象,甚至可能是一个模型。我可以这样做吗?怎样?它必须是模块或类还是可以是任何东西 有专门针对rails的模式吗?如果它们没有绑定到三层中的一层,那么应该将它们放在/lib目录中 /lib下的约定是,您应该将文件夹命名为模块、文件和类,并且应该始终尝试将其他行为封装在模块中。比如说,你上了一些课 module MyModule class MyHelp

这是一个新手rails设计问题。假设我希望我的一些常用功能位于一组帮助器类中(作为类方法或实例方法)

我想在控制器(不是视图)内使用这些辅助对象,甚至可能是一个模型。我可以这样做吗?怎样?它必须是模块或类还是可以是任何东西


有专门针对rails的模式吗?

如果它们没有绑定到三层中的一层,那么应该将它们放在/lib目录中

/lib下的约定是,您应该将文件夹命名为模块、文件和类,并且应该始终尝试将其他行为封装在模块中。比如说,你上了一些课

module MyModule

  class MyHelperClass
  end

end

你应该把它放在/lib/my_module/my_helper_class.rb中

所以如果我不遵循这个惯例,rails基本上就不能加载我的类了?我还可以在我的模型和控制器中使用MyHelperClass吗?如果不遵循此约定,则必须手动加载它们(请参阅)。MyHelperClass将可用于这两个应用程序;只需确保加载时使用其全名(MyModule::MyHelperClass)或在类中包含模块MyModule。标题不正确:“Rails帮助程序类和模块上的问题”。好标题:“由多个控制器和模型共享的代码——最好存放在哪里?”:-)