2

(プロジェクト固有の) クラスを Rails のコントローラーに追加する必要がある場合、.rb ファイルを配置して「含める」正しい方法/場所は何ですか? (引用符: ruby​​ キーワードが含まれていない)

私はレールが初めてで、正しい方法が見つかりませんでした。LIB は、より多くのパブリック ライブラリのように聞こえます。また、私が学んだことでは、開発モードではデフォルトでリロードされません。

確かに、controler.rb にすべてを入れることはできますが、...


私のための答え:

まず、レールのルールを覚えている(または私のように学ぶ)場合、ルールはありません:NameOfCla -> name_of_cla(.rb)

クラスに好きな名前を付けます:

class ExtendCon #<--- not using controller here for clearence
    ....

ファイルに入れてextend_con.rb、パスの説明を待ってください。クラスに「MYGreatThing」という名前を付けた場合、それは「m_y_great_thing」になります(テストしないでください)ので、中国語の文字は避けてください

コントローラーが使用する場合

@letssee=ExtendCon.new

rails はそのクラスとファイル (extend_con) を独自に学習します。サーバーの再起動が必要かどうかはまだわかりません。(初めて)

ファイルを配置するパスを選択します: (私は Daves の方法が好きです)app/myextenまたは好きなものを選択して、「アプリ」固有にし、標準的な Rails の「もの」と区別します

あなたが私のように怠け者ではない場合(私はアプリ/コントローラーに入れます)、選択したパスを config/application.rb好きなように入力します(コメントはそれを見つけるためにそこにあります)

# Custom directories with classes and modules you want to be autoloadable.
# config.autoload_paths += %W(#{config.root}/app/controllers)
config.autoload_paths += %W(#{config.root}/app/myexten)   

これは、「開発者」を含むすべてのモードで機能し、「自分の」ものを app/lib に入れる必要はありませんでした

4

2 に答える 2

0

Rails 4 には、コンサーンと呼ばれるコントローラー用の内部ディレクトリが付属しています。あなたはそれを使ってみることができます。

app/controlls/concerns

がある場合はconcerns/foo_bar.rb、次のように含めます。

class FooController < ApplicationController
  include FooBar
end

モデルには、独自の懸念ディレクトリもあります。このアプローチは便利で、Rails 3 にも適用できます。ロード パスにディレクトリを追加するだけです。

于 2013-07-25T23:33:12.413 に答える