2
class Photo < ActiveRecord::Base
    has_many :boosts, class_name: BoostedPhoto
    ...
end

class BoostedPhoto < ActiveRecord::Base
    belongs_to :photo
end

これは私がこれまでに設定した方法ですが、コンソールでこれを実行しようとすると:

photo = Photo.first
photo.boosts.create(title: 'testing')

次の結果が得られます

(0.3ms)  begin transaction
(0.1ms)  rollback transaction
ActiveRecord::UnknownAttributeError: unknown attribute: photo_id

関係を築く方法を数時間調べていて、本当に単純なことを見落としているのではないかと思います...初心者の質問で申し訳ありませんが、欲求不満から髪を引っ張り始めています!

4

1 に答える 1

2

boosted_photosテーブルに外部キー列があるはずです。一般的なルールはbelongs_to、外部キーを持つテーブルモデルに関連付けを配置することです。ここではBoostedPhoto

その後、以下が機能するはずです、

photo = Photo.first
photo.boosts.create(title: 'testing')
于 2012-03-25T12:42:09.530 に答える