首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails关联在不使用实例变量时工作

Rails关联在不使用实例变量时工作
EN

Stack Overflow用户
提问于 2014-06-22 21:31:27
回答 2查看 66关注 0票数 1

到目前为止,我在Rails中看到了最奇怪的错误。在我看来,如果我直接找到记录(例如Painting.find(15) ),我可以打印出与绘画相关的电子邮件。但是,如果我尝试使用实例变量,则会出现错误(例如@绘图)。

视图/绘画/陈列品.

代码语言:javascript
运行
复制
<%= Painting.find(15).artist.user.email %>  # works
<%= @painting.artist.user.email %> # Error: "undefined method 'user' for nil:NilClass"

控制器/绘画控制器

代码语言:javascript
运行
复制
def show
  @painting = Painting.find(15)
end

模特:“使用者”、“艺术家”、“绘画”。

  1. 用户可以是艺术家。所以是user has_one artist
  2. 一个artist has_many paintings
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-22 23:01:01

我觉得你应该增加联系。它们应该是这样的:

代码语言:javascript
运行
复制
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

对我来说,这两种情况都适用于这种关联。

票数 1
EN

Stack Overflow用户

发布于 2014-06-22 21:45:36

使用

代码语言:javascript
运行
复制
def show
  @painting = Painting.find(15).last
end

当前,第二个元素数组返回一个元素数组,但是要调用依赖的方法,必须指定一个项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24355929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档