2
モデルの関連付けに問題があります。または、アソシエーションを照会する方法について何とか知りません。レールアソシエーションを照会する
今class Entry < ActiveRecord::Base
has_one :category
end
class Category < ActiveRecord::Base
belongs_to :entry
end
、私は私のレールコンソールにアクセスし、Entry.first
を求める、私が取得する場合:
Entry Load (0.1ms) SELECT "entries".* FROM "entries" LIMIT 1
=> #<Entry id: 1, category_id: 1, duration: 2.0, image: "3", note: "4", url: "5", created_at: "2012-03-03 02:22:23", updated_at: "2012-03-03 02:22:23">
と私はCategory.first
に言わせれば、私が得る:
Category Load (0.1ms) SELECT "categories".* FROM "categories" LIMIT 1
=> #<Category id: 1, name: "Dev", created_at: "2012-03-03 02:17:17", updated_at: "2012-03-03 02:17:17">
しかし、私の場合Entry.first.category.name
を求めて、それが壊れて、私は得ます:
Entry Load (0.1ms) SELECT "entries".* FROM "entries" LIMIT 1
NoMethodError: undefined method `category' for #<Entry:0x007fec4d217848>
from /Users/john/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/activemodel-3.2.1/lib/active_model/attribute_methods.rb:407:in `method_missing'
from /Users/john/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/activerecord-3.2.1/lib/active_record/attribute_methods.rb:126:in `method_missing'
from (irb):63
from /Users/john/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/railties-3.2.1/lib/rails/commands/console.rb:47:in `start'
from /Users/john/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/railties-3.2.1/lib/rails/commands/console.rb:8:in `start'
from /Users/john/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/railties-3.2.1/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
これはなぜですか?エントリーを通じてカテゴリの名前を取得するにはどうすればよいですか?私は間違って何をしていますか?
ありがとうございました。私は両方向で試しましたが、モデルを変更した後にレールコンソールをリロードする必要があることに気づいていませんでした。今私は知っている! :) – John