2012-02-07 60 views

回答

0

你會想對Rails約定稱爲「關注」做一些研究。這裏是lowdown:在您的app目錄中創建名爲關注的子目錄。在應用程序/問題中創建您的模塊,並將模塊包含在您的所有模型中。將config/application.rb中的應用程序/關注點路徑添加到config.autoload_path。

在你做任何事情之前,我很好奇所有模型都需要包含哪種方法?我們正在談論多少個模型以及您想要解決什麼問題?

+0

這是數據到遠程服務器,即一個socket.io服務器。我使用socket.io進行實時更新,我需要從多個模型發送這些更新。 – JRPete 2012-02-07 06:13:08

+0

我不認爲關注是正確的, – 2012-02-07 06:14:42

+0

同意,Aroop。我認爲解決方案需要處於更高層次。不過,我對socket.io不夠熟悉。 – 2012-02-07 12:47:28

2

有多種方法,使你可以做實現這一

  1. 使用OOP,並在你的項目中創建ActiveRecord的:: Base的一個子類,並使用這個類作爲所有車型
  2. 猴路徑的ActiveRecord :: Base的
  3. 創建一個模塊,幷包括在所有模型
9

你可以寫在一個模塊中可重複使用的方法,包括在必要的車型。

創建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) 
+0

我看到了很多這個問題的答案,並沒有提到在autoload_paths中包含lib。 +1!解決了我的問題 – 2013-12-08 12:57:21

3

服務器啓動時的有效記錄擴展

# 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 
相關問題