2017-06-14 20 views
0

私はRailsフレームワークには比較的新しいので、私が取っているアプローチが最も効果的で効果的な方法か、それともRailsの慣習に従っているかどうかは分かりません。多対多の関係を持つ少数の設定カテゴリ?

私の基本的な問題は、私のアプリケーションに会社のモデルがあり、さまざまなの設定カテゴリ(ユーザーは編集できません)です。各社は複数のカテゴリーに属することができます。以来、

しかし

  • 会社 has_many_belongs_to_many カテゴリー
  • カテゴリー has_many_belongs_to_many 会社:私の理解では、他の例から、私のようなものとしての関係を設定しなければならないことです多くのカテゴリ(< 10)はありませんし、それらは変更/編集/ユーザーが追加/削除する必要がありますが、カテゴリごとに新しいテーブルを作成して企業に参加させる必要があるとは思わないのですか?私が行方不明のRailsでこれを行うより良い方法はありますか?前もって感謝します!

答えて

0

カテゴリは10種類しかないかもしれませんが、自分のテーブルに入れても問題ありません。リレーションシップを設定することで、クエリを自分で再構築することなく、必要なときに、単一のカテゴリに関連する企業を検索するプログラム的な力を得ることができます。

データベースでそれらを保つための単純化の例:

# Get all companies under a specific Category 
@category = Category.find(1) 
@companies = @category.companies 

あなたは私に言わせれば、かなり簡単です。また、将来別のカテゴリをテーブルに追加すると、新しいコードを書く必要がなくなります。

has_and_belongs_to_many(habtm)の代わりにhas_many :throughを使用してチェックアウトします.habtmはアプリケーションが大きくなると予期せぬ問題を引き起こす可能性があります。この問題にもっと深く関わる素晴らしい記事があります:Why You Don’t Need Has_and_belongs_to_many Relationshipsあなたがそれを使うことができないと言っているわけではありませんが(シューズが適合している場合)、潜在的な問題を認識して、あなたとあなたのアプリケーションに適切な決定を下すことができます。