2012-02-07 3 views

答えて

0

"Concerns"というRailsのコンベンションについていくつか調査したいと思うでしょう。下見は次のとおりです:appディレクトリの懸念と呼ばれるサブディレクトリを作成します。モジュールをアプリケーション/懸念事項として作成し、すべてのモデルにモジュールを組み込みます。 app/concernsへのパスをconfig/application.rbのconfig.autoload_pathに追加します。

これを行う前に、どのような方法をすべてのモデルに組み込む必要があるのでしょうか?どのくらいのモデルが話していて、解決しようとしている問題は何ですか?

+0

これは、リモートサーバー、つまりsocket.ioサーバーへのデータ用です。私はリアルタイム更新のためにsocket.ioを使用しています。複数のモデルからそれらの更新を送信する必要があります。 – JRPete

+0

私は心配していないと思う正しい方法です –

+0

合意、Aroop。私は解決策がより高いレベルにある必要があると思う。私はsocket.ioで十分に精通していない。 –

2

あなたはこの

  1. 使用OOPを達成行うと、プロジェクトにはActiveRecord ::ベース用のサブクラスを作成し、すべてのモデル
  2. の親として、そのクラスを使用することができている複数の方法があります。
  3. モンキー・パスはActiveRecord ::ベース
  4. モジュールを作成し、すべてのモデル
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!私の問題を解決した –

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 
関連する問題