0

次の2つのテーブルがあります

contacts table
id
email
name
company
phone

signups table
id
contact_id
code
details

そして、私は2つのモデルcontactssignups持っており、同じコントローラーも持っています。

ここで必要なのは、contacts テーブル id = signups table contact_id である contact テーブルからすべてのデータを取得することです。

Ruby on Railsでこれを行うにはどうすればよいですか?

アップデート

これが今のところ空である私のモデルです

class Usercontacts < ActiveRecord::Base
#has_one :signups
#has_one :receiver, :class_name => "Signups"
end

セカンドモデルはこちら

class Signups < ActiveRecord::Base
 attr_accessible :contact_id, :code, :event_id, :details

 #belongs_to :usercontacts
 #belongs_to :receiver, :class_name => "Usercontacts"
end

今、私はサインアップコントローラーのようなことをしています

class SignupsController < ApplicationController
layout 'admin_layout'

def signups
    #@signups = Contact.joins('LEFT OUTER JOIN signups ON contacts.id = signups.contact_id')
            @contacts = Contact.joins(:sign)
end
end

しかし、これは連絡先テーブルからすべてのデータを取得します。しかし、IDがsignupsテーブルに存在するデータのみを取得したい。

4

1 に答える 1

5

レールの規則に従っていません

UsercontactsUserContact対応するテーブル名を使用する必要がありますuser_contacts(またはContactすでにcontactsテーブルがある場合)

SignupsSignup対応するテーブル名である必要がありますsignups

関係宣言は同じ規則に従います- belongs_to :singular_namehas_many :plural_name

規則に従い始めると、すべての問題が解決します

于 2012-07-17T08:47:18.197 に答える