0
customer=Customer.new #create a new Customer object
customer.id =1000+i #Id needs to be set first because otherwise its automatically set
customer.update_attributes(
    :fname=>'mike',
    :lname=>'hancock',
    :Year=>1998,
    :Model=>'buick',
    :Engine=>'4 liter',
    :vinnum=>'h920129801298',
    :signupdate=>"#{Date.today}",
    :password=>'fguygfyed',
)
    contact=Contact.create(
        :customer_id=>customer.id, #set the foreign primary key
        :contactmethod=>4567894561,
        :contacttype=>"sms",
        :dateadded=>"#{Date.today}",
    )
    customer.Contacts.create(
        :contactmethod=> 4657894564,
        :contacttype=> 'email',
        :dateadded=> "#{Date.today}",
    )
    i+=1
end

このコードは機能します。ただし、代わりに

contact=Contact.create( :customer_id=>customer.id, #外部主キーを設定

最後に書いたようにcustomer.Contacts.createを書いたところ、コードは失敗します。customer.Contacts.create のインスタンスを 1 つしか持てず、もう 1 つのインスタンスには customer.id を明示的に宣言しなければならないのはなぜですか?

4

1 に答える 1

0

メソッド名はほとんどの場合、すべて小文字で宣言されます。これは有効ではないようです。

おそらく意図しているのは次のとおりです。

customer.contacts.create(...)
于 2013-05-02T19:17:45.730 に答える