我有两个模型问题和拆分。
问题有很多分裂,分裂属于一个问题。以下是两个模型的代码:
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为我提供了“未定义的局部变量或方法`问题”,用于“
我正在尝试在拆分索引页面上显示问题的目标值,以便我可以确定要添加多少拆分以达到目标。
好像我错过了一些明显的东西。但是,我有点像菜鸟。
由于
答案 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
表示@split
为nil
。因此,在相应控制器的操作/方法中定义@split
。像这样:
@split = Split.first
然后,它应该工作。