我應該在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