2012-08-05 15 views
9

「ファイル」と呼ばれるモデルを作成したいが、予約モデル名はrailsです。モデルを呼び出すために他の何ものも考えていないので、この問題を扱う標準的な方法があるかどうか、たとえば接頭辞または接尾辞(_File、FileItemなど)を追加するかどうか疑問に思っていましたか?予約されたキーワードを持つモデル

答えて

8

この問題はmodulesで対処されています

モジュールが一緒にメソッド、クラス、および 定数をグループ化する方法です。モジュールは2つの大きなメリットをもたらします。

  1. モジュールは名前空間を提供し、名前の衝突を防ぎます。
  2. モジュールはmixin機能を実装します。

[...]

モジュールは、名前空間、あなたの方法と 定数は 他のメソッドや定数によって踏まれを気にせずプレイできるサンドボックスを定義します。

あなたの場合

module MyRailsApp 
    class File 
    ... 
    end 
end 

あなたFileクラスはMyRailsApp::Fileとして使用されます。これは、Rubyで一般的なソリューションであるRubyでRailsの上で、これは異なる方法で処理される可能性があります、深さでの議論のための以下の参考文献を参照してください。

+0

どのようにモデルをレールのモジュールですか? –

+0

@CameronMartinモジュールにクラスを置くのと変わらない。 –

+0

'rails generate model modulename/modelname'を実行すると、モジュールでモデルを作成できますか?すべてのモデルをモジュールに入れたり、衝突しない名前を選択する方が良いでしょうか? –

関連する問題