2009-03-02 6 views
17

初めから、Railsは名前空間付きモデルに問題がありました。時間が経つにつれて、皆さんはそれをあきらめていました。自分自身が含まれています。Railsの名前空間モデル:ユニオンの状態はどうですか?

Rails 2.3がリリースされましたので、私は状況を更新したいと思います。私が覚えている具体的な質問は以下の通りです:

  • 最初に、それはいいですか?
  • テーブルの名前は、どのようなルールに従うのですか?
  • アソシエーション、どのようにそれらを最小限の冗長性で宣言するのですか?外部キー列に名前を付ける方法
  • 名前空間に一致するサブディレクトリにモデルファイルを置くと自動的に必要ですか?または、名前を付ける方法とファイルを配置する場所は?
  • 世代では、モデルジェネレータは名前空間を正しく正常に処理しますか?
  • 世代、コントローラーを含む足場ジェネレーターはどうですか?
  • 非互換性/奇妙なことに注意する必要がありますか?
+0

ほとんどの回答をすばやく調べることができるので、私はこの質問に怠け者だと気づいていますが、誰かがすでに多くの苦痛を経験して共有したいと思っています。 – kch

+0

私はそれが良い質問だと思います。私はそれが欲しい、もう一度やった、痛みを感じ、あきらめた人だから、何が戻ってくるのを楽しみにしています。 –

+1

この質問はかなり古いです。私はRails 4.0がリリースされた今、どのように改善されたのか不思議です。 – Andrew

答えて

14

私がこの問題で見たベスト書き込みは、Strictly Untypedです。私の知る限り、2.3では問題は解決されていないため、依然として信頼できません。

+0

タイトルにlolcatsが付いているものは良いものでなければなりません。チェックします。 – kch

+0

リンクが壊れています。 Rails 4がリリースされたので、この回答を更新することができますか? – Andrew

3

私たちは最近、私たちの会社内でこれについて大きな議論をしました。私はその日の終わりに、データベース内のテーブルの名前を変更できない場合、モデルの名前空間を作成することは意味がないと考えました。

config.load_paths << "#{RAILS_ROOT}/app/models/users" 

をモデルにロードするために:私たちは使用して、その後、(UserEmailAddresses、UserAddress、ユーザー)たちのモデルを接頭辞に定住し、ユーザーのディレクトリにそれらを置きます。私たちのモデルで冗長性を制御するために、我々は、この頻繁に行います。名前空間(スクリプト/生成モデルUserAddress)がなかったかのように

has_many :addresses, :class_name => "UserAddress" 

生成、我々はそれを作成し、手動でユーザーディレクトリにコピーします。

Shrug。私は結局のところ、これは本当にあなたが私のようなVIMユーザーの方が実際にはもっと問題なのですが、TextMatersにとってはきれいな、きれいなディレクトリ構造だと思います。

+0

さて、実際には、TextMaterとして、私はcmd + Tでファイルに行くことを伝えなければなりません。ほとんどの場合、ファイルブラウザは使用しません。とにかく、それは適度に役立ちますが、あなたはあなたがレール2.3で名前空間を試したことを言っています、それはまだSOLですか? – kch

+0

私はVIMでcmd + Tと似たようなものを使用しています。フォルダに物事を入れることについての素晴らしいことは、 "m/u /"を実行でき、cmd + Tがおそらくモデル/ユーザー/ (ほとんどのcmd + tユーザーは、スラッシュがディレクトリごとにリストを絞り込むことに気づいていません) – efalcao

+0

残りの質問に答えて、私たちは2.3でそれを試しませんでした。さらに、私は2.3の変更の中で特に "緑色のライト"ネームスペースモデルを見たことがありません。 – efalcao

-2

私はまだそれから離れています。何か得られた(私はそれが正直に何であろうか分からない)間違いとあなたのコードの簡潔さと明快さの損失を考慮すると間違いなく失われるでしょう。

私の最新のアプリには87のリソースがあり、全面的な管理機能が含まれています。私は名前空間を必要としない、IMHO。

+0

名前空間ではうまくいく人もあれば、気にしない人もいます。あなたはいつもその周りに道を見つけることができます、地獄、たくさんの言語には何もありません。必要性や選択肢にもかかわらず、それは答えがあることが良いと思う質問です。 – kch

+2

これは近視眼的な毛布の声明です。名前空間の説得力のある理由は、そのパリティよりもモデルの量が少なくない。 – gtd

+0

アプリケーションが拡張され、新しい開発者を得てアプリケーションの仕組みを素早く学び、この議論を試みるまで待ってください。 – jwg2s

関連する問題