【发布时间】:2014-11-08 21:02:40
【问题描述】:
我有以下型号:
用户
class User < ActiveRecord::Base
...
attr_accessible :email
has_many :ingredients, class_name: "Ingredient", foreign_key: "created_by"
end
成分
class Ingredient < ActiveRecord::Base
...
attr_accessible :created_by
belongs_to :user
end
我创建了一种成分,并填充了 created_by 字段。如果我这样做:
> u = User.find(1)
> u.ingredients.size
=> 1
所以这种关系是有效的!但如果我这样做:
Ingrendient.last.created_by.email
我收到以下错误:
1.9.3-p362 :012 > Ingredient.last.created_by.email
Ingredient Load (0.3ms) SELECT "ingredients".* FROM "ingredients" ORDER BY "ingredients"."id" DESC LIMIT 1
NoMethodError: undefined method `email' for 1:Fixnum
from (irb):12
from /Users/andreucasadella/.rvm/gems/ruby-1.9.3-p362/gems/railties-3.2.11/lib/rails/commands/console.rb:47:in `start'
from /Users/andreucasadella/.rvm/gems/ruby-1.9.3-p362/gems/railties-3.2.11/lib/rails/commands/console.rb:8:in `start'
from /Users/andreucasadella/.rvm/gems/ruby-1.9.3-p362/gems/railties-3.2.11/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
为什么?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 foreign-keys associations