到目前为止,我在Rails中看到了最奇怪的错误。在我看来,如果我直接找到记录(例如Painting.find(15) ),我可以打印出与绘画相关的电子邮件。但是,如果我尝试使用实例变量,则会出现错误(例如@绘图)。
视图/绘画/陈列品.
<%= Painting.find(15).artist.user.email %> # works
<%= @painting.artist.user.email %> # Error: "undefined method 'user' for nil:NilClass"
控制器/绘画控制器
def show
@painting = Painting.find(15)
end
模特:“使用者”、“艺术家”、“绘画”。
user has_one artist
。artist has_many paintings
。发布于 2014-06-22 23:01:01
我觉得你应该增加联系。它们应该是这样的:
class User < ActiveRecord::Base
has_one :artist # it's ok
end
class Artist < ActiveRecord::Base
belongs_to :user # add this
has_many :paintings
end
class Painting < ActiveRecord::Base
belongs_to :artist
end
对我来说,这两种情况都适用于这种关联。
发布于 2014-06-22 21:45:36
使用
def show
@painting = Painting.find(15).last
end
当前,第二个元素数组返回一个元素数组,但是要调用依赖的方法,必须指定一个项。
https://stackoverflow.com/questions/24355929
复制相似问题