我应该在Rails中放置一个方法,以供所有模型使用?Rails在哪里可以放置所有模型中使用的方法
回答
你会想对Rails约定称为“关注”做一些研究。这里是lowdown:在您的app目录中创建名为关注的子目录。在应用程序/问题中创建您的模块,并将模块包含在您的所有模型中。将config/application.rb中的应用程序/关注点路径添加到config.autoload_path。
在你做任何事情之前,我很好奇所有模型都需要包含哪种方法?我们正在谈论多少个模型以及您想要解决什么问题?
这是数据到远程服务器,即一个socket.io服务器。我使用socket.io进行实时更新,我需要从多个模型发送这些更新。 – JRPete 2012-02-07 06:13:08
我不认为关注是正确的, – 2012-02-07 06:14:42
同意,Aroop。我认为解决方案需要处于更高层次。不过,我对socket.io不够熟悉。 – 2012-02-07 12:47:28
有多种方法,使你可以做实现这一
- 使用OOP,并在你的项目中创建ActiveRecord的:: Base的一个子类,并使用这个类作为所有车型 父
- 猴路径的ActiveRecord :: Base的
- 创建一个模块,并包括在所有模型
你可以写在一个模块中可重复使用的方法,包括在必要的车型。
创建LIB文件/ reusable.rb
module Reusable
def reusable_method_1
puts "reusable"
end
def reusable_method_2
puts "reusable"
end
end
比方说,如果你想在用户模式使用此
class User < ActiveRecord::Base
include Reusable
end
,还要确保在启用autoload_path的lib /目录application.rb
# Custom directories with classes and modules you want to be autoloadable.
config.autoload_paths += %W(#{config.root}/lib)
我看到了很多这个问题的答案,并没有提到在autoload_paths中包含lib。 +1!解决了我的问题 – 2013-12-08 12:57:21
服务器启动时的有效记录扩展
# config/initializers/core_extensions.rb
class ActiveRecord::Base
# write ur common base code here
def self.per_page
@@per_page ||= 10
end
def self.pagination(options)
paginate :per_page => options[:per_page] || per_page, :page => options[:page]
end
end
- 1. 放置_changed的正确位置在哪里? Rails中的方法?
- 2. 哪里可以放置@XmlElement?
- 3. 哪里可以放置InvokeRepeating?
- 4. C#哪里可以放一般方法?
- 5. Rails 3,在哪里放方法?
- 6. 使用JavaScript模块模式时应该在哪里放置私有方法?
- 7. 哪里可以在Rails 3.2中放置js文件
- 8. 去哪里放置用户模型?
- 9. 所有控制器都可以访问的一种方法 - 放在哪里?
- 10. 在哪里可以找到UIATarget类的所有方法?
- 11. 哪里可以放置控制器的辅助方法?
- 12. Rails 3:在哪里存储模型的共享方法?
- 13. Rails:在哪里放置配置变量
- 14. 放在哪里“ViewPager.setCurrentItem()”方法
- 15. Ruby模块使用一些常用的方法:在哪里放这个方法?
- 16. Rails - 在哪里放置数据文件?
- 17. Rails 4:在哪里放置Struct?
- 18. Rails - 在哪里放置路径助手?
- 19. Rails:跨多个模型的验证,放在哪里?
- 20. 哪里可以在Rails应用中使用Bit.ly API调用
- 21. 我在哪里可以查看所有eslint ast节点类型?
- 22. 在哪里把可重用的HTML代码放在rails中?
- 23. 如何在nginx中使用.htaccess以及在哪里放置它?
- 24. 模型创建后,Rails中的哪里可以调用邮件程序?
- 25. 哪里可以在短信的codeignater中放置全局函数?
- 26. 我应该在哪里放置模型访问的函数? - Rails 3.1
- 27. iPhone MVC应用程序:我应该在哪里放置模型?
- 28. 我在哪里可以找到基于2个模型的方法?
- 29. 哪里可以找到Laravel 5.3中的via()方法和Notifiable模型?
- 30. Rails事务:ActiveRecord模型类在哪里?
重复? http://stackoverflow.com/questions/2328984/rails-extending-activerecordbase – 2012-02-07 04:56:01