2

http://guides.rubyonrails.org/association_basics.htmlのガイドに従って おり、作成しました

class Customer < ActiveRecord::Base
  has_many :orders, :dependent => :destroy
end



class Order < ActiveRecord::Base
  belongs_to :customer
end

しかし、実行する@order = @customer.orders.create()

不明な属性: customer_id

このエラーが発生する理由を知っていますか? そしてさらに重要なことに、has_many のすべてのガイドがこの例を示すことであなたを狂気に駆り立てる隠れた理由がありますが、それらのどれも実際に機能していません :)

4

3 に答える 3

4

orders テーブルに customer_id 列を追加する必要があります。

そのためには、移行を実行する必要があります-

rails g migration add_customer_id_to_orders customer_id:integer

それから

rake db:移行

于 2012-06-23T10:15:59.390 に答える
1

customer_id注文テーブルに列を追加する必要があります。

ActiveRecordは、関連する注文のためにどの顧客をフェッチするかを知りません。

試してくださいrails g migration AddCustomerIdToOrders customer_id:integer(db:migrateを忘れないでください)。

于 2012-06-23T10:10:27.743 に答える
0

移行を実行するのを忘れたようです。コンソールから、Rails プロジェクトのルート ディレクトリ内で実行rake db:migrateして、関連付けとモデルのバッキング テーブルと列がすべて Rails によって生成されていることを確認します。

于 2012-06-23T09:47:17.410 に答える