在连接对象的循环中获取连接表id

时间:2013-07-30 22:24:11

标签: ruby-on-rails

我有Alphas和Betas的多对多关系(为了简化),我正在循环:

<% alpha.betas.each do |beta| %>
  <p>Name: <%= beta.name %></p>
<% end %>

获取每个alpha_beta联接表行的ID的好方法是什么?基本上,一个beta可以在alpha中多次使用。用户将针对每个alpha版本提交信息,因此信息不仅要针对测试版,还要针对测试版的实例。

<% alpha.betas.each do |beta| %>
  <p>Name: <%= beta.name %></p>
  <p>ID: <!-- alpha_beta.id --></p>
<% end %>

我已经根据Ruby on Rails文档设置了连接表和模型,并且它运行良好。只是试图想出一个干净的方法来做到这一点。

我还为我的连接表实例化了一个alpha_beta模型,所以很容易从控制器中获取id ...在我看来的循环中是另一回事。

型号:

class Alpha_beta < ActiveRecord::Base
  belongs_to :alpha
  belongs_to :beta
end

class Beta < ActiveRecord::Base
  has_many :alpha_betas
  has_many :alphas, :through => :alpha_betas
end

class Alpha < ActiveRecord::Base
  has_many :alpha_betas
  has_many :betas, :through => :alpha_betas
end

1 个答案:

答案 0 :(得分:1)

为什么不呢?

<% Alpha_Beta.all.each do |ab| %>
  <p>Name: <%= ab.beta.name %></p>
  <p>ID: <%= ab.id %></p>
<% end %>

循环alpha_betas,然后您拥有所有属性。