私はモデルFoo
とBar
を持っています。 Bar
の列にはfoo_id
があります。 私がBar.foo_id
と呼ぶとエラーが出るmissing attribute: foo_id
アクティブレコードの属性がありません
これは未定義のメソッドエラーではなく、列は確かにdbにあることに注意してください。これの一般的な原因は何ですか?
おかげであなたはBar
のためのクラス変数を持っていない限り
私はモデルFoo
とBar
を持っています。 Bar
の列にはfoo_id
があります。 私がBar.foo_id
と呼ぶとエラーが出るmissing attribute: foo_id
アクティブレコードの属性がありません
これは未定義のメソッドエラーではなく、列は確かにdbにあることに注意してください。これの一般的な原因は何ですか?
おかげであなたはBar
のためのクラス変数を持っていない限り
の方法がありますか?たとえば、あなたがた:検索で選択します。その場合は
Foo.find(:all, :select => "firstvar, secondvar")
、あなたは
を定義しfoo_idているにもかかわらず、firstvarとsecondvarのみアクセスすることができ、それがお役に立てば幸い! =)
私はdefault_scopeを持っていました:includes => [:model1、:model2] defined ..代わりに私はすべての必要が含まれてカスタムスコープを使用しました。 –
私の場合、問題はオブジェクトがキャッシュされていて、新しい属性を持たない古いバージョンを使用していたということでした。キャッシュがクリアされると、物事は期待通りに機能しました。 –
あなたは
Bar.foo_id
または
bar = Bar.new
bar.foo_id
を呼び出しているが、あなたは、バーのインスタンスにfoo_id
を見てする必要があります。私はそれが助けて欲しい乾杯。
バーをどのようにロードしていますか? –