我有3个表:电话,结果,问题。我还有3个型号:电话,结果,问题
Phonecalls的架构是: id,date,user_id
问题架构是: id,text,error
结果架构是: id,phonecall_id,question_id,result
我的Phonecall.rb是:
class Phonecall < ActiveRecord::Base
has_many :results
has_many :questions, :through => :results
end
我的Result.rb是:
class Result < ActiveRecord::Base
has_one :question
belongs_to :phonecall
end
我的问题.rb:
class Question < ActiveRecord::Base
belongs_to :result
has_many :phonecalls, :through => :result
end
所以我如何在这个循环中获得问题属性:
<%
@phonecalls.each do |ph|
ph.results.each do |r|
%>
<%= ph.id %>
<%= r.id %>
<%
end
end
%>
如果我试图获得r.question.id - 我有错误。如果我尝试用ph.questions做一些循环 - 我有错误。
我怎么做?
答案 0 :(得分:1)
has_many :phonecalls, through: :result
允许您这样做:
question.phonecalls
会返回与您的phonecalls
个实例关联的question
数组。
反过来并回答你的问题:
@phonecalls.each do |ph|
ph.questions.each do |question|
puts ph.id
puts question.id
end
end
答案 1 :(得分:0)
是的,我的问题出在我的人际关系中。
在Result.rb中我告诉结果对问题感到怀疑,但它是假的。 现在我有这种关系: Result.rb:
class Result < ActiveRecord::Base
belongs_to :question
belongs_to :phonecall
end
Questio.rb
class Question < ActiveRecord::Base
has_many :result
has_many :phonecalls, :through => :result
end
它为我工作。