0

私はRuby on Railsが初めてで、関連付けにこだわっています。

メンバーが連絡先を作成できる Web アプリを開発したいと考えています。連絡先には、1 つ以上のカテゴリ (ベーカー / 俳優 / 開発者 / なんでも) を含めることができます。

そのことから、メンバー、連絡先、およびカテゴリの少なくとも 3 つのモデルが必要であることがわかります。モデルcategory_contactsも作成しました。

ここに私のモデルの関連付けがあります:

class Member < ActiveRecord::Base
   has_many :contacts
end

class Contact < ActiveRecord::Base
   belongs_to :member
   has_many :categories_contacts
   has_many :categories, :through => :categories_contacts
end



   class Category < ActiveRecord::Base
      has_many :categories_contacts
      has_many :contacts, :through => :categories_contacts
   end




 class CategoriesContacts < ActiveRecord::Base
     belongs_to :contact
     belongs_to :category
  end

大丈夫ですか ?

そして、すべての連絡先をカテゴリ別に取得したいと思います。

例 :

カテゴリー : 俳優, 監督

連絡先 1 : 名前 (ジョン)、カテゴリ (俳優、監督)

連絡先 2 : 名前 (ザック)、カテゴリ (俳優)

連絡先 3 : 名前 (幸運)、カテゴリ (役員)

俳優で並べ替えると、次のようになります

カテゴリ : 俳優 =>

連絡先 1 : 名前(John)

連絡先 2 : 名前(ザック)

しかし、コントローラーですべての連絡先を取得する方法がわかりません。私は何かを試しましたが、何も機能しません。

助けてくれてありがとう。

4

1 に答える 1

0

あなたのセットアップは問題ないようです。

それを試してください:

Contact.joins(:categories).where("categories.id in ?", params[:category_ids]).all

並べ替えたい場合:

Contact.joins(:categories).where("categories.id in ?", params[:category_ids]).order("contacts.name ASC")
于 2011-12-05T23:29:07.823 に答える