如何从当前模型所属的模型访问数据?

时间:2015-09-09 15:56:06

标签: ruby-on-rails

我有两个模型问题和拆分。

问题有很多分裂,分裂属于一个问题。以下是两个模型的代码:

class Issue < ActiveRecord::Base

    belongs_to :publication
    has_many :splits
    has_many :issue_split_geographies
    belongs_to :medium

    validates :name, :start_date, :status, presence: true
end

class Split < ActiveRecord::Base
    belongs_to :issue
    has_and_belongs_to_many :geographies 
    has_and_belongs_to_many :media 
end

如果我想在问题视图中获取拆分名称,我知道如何通过@ issue.split.name从我的问题视图中的问题访问拆分信息。

我在弄清楚如何走另一条路时遇到了问题。如何在拆分视图中显示问题信息?

@ split.issue.target为nil提供了未定义的方法`issue':NilClass

split.issue.target给了我未定义的局部变量或方法`split'for

issue.target为我提供了“未定义的局部变量或方法`问题”,用于“

我正在尝试在拆分索引页面上显示问题的目标值,以便我可以确定要添加多少拆分以达到目标。

好像我错过了一些明显的东西。但是,我有点像菜鸟。

由于

1 个答案:

答案 0 :(得分:1)

@split.issue.target

拆分 belongs_to 问题的正确方法。所以,@split.issue没问题。只需确保在相应的控制器操作中定义@split,并且issue_id表中有splits

但是,正如您所提到的那样:@issue.split.name,因为您的问题 has_many 拆分,这不应该是正确的。它应该是:@issue.splits.first.name

您的错误消息:

@split.issue.target gives me undefined method `issue' for nil:NilClass

表示@splitnil。因此,在相应控制器的操作/方法中定义@split。像这样:

@split = Split.first

然后,它应该工作。