Rails has_many通过关联问题

时间:2018-04-06 09:18:37

标签: ruby-on-rails ruby activerecord ruby-on-rails-5

我有3个型号:

<?php
/* Layout for search results */
elseif( $style == 'search-results' ) :
?>

<li>
  <a href="<?php echo esc_url( get_permalink() ); ?>">
    <strong class="block"><?php the_title(); ?></strong>
    <p>
     <?php 
      if(has_excerpt()) {
        get_the_excerpt();  
      }
      else {
        $content = get_the_content();
        echo $content;
        echo wp_strip_all_tags($content, true);
      }         

    ?>
    <span class="read-more">[more]</span>
    </p>
  </a>
</li>

sophead 有很多 ods od 有很多 od_items

每个 od_item 属于一个 od ,每个 od 属于一个傻瓜

我希望能够为特定的傻瓜返回所有 od_items ,如下所示:

sophead
od 
od_item

傻瓜获取所有 od_item 的正确关联是什么?

我曾尝试过:

all_od_items_for_first_sophead = Sophead.first.od_items

但我认为这是不正确的,因为它与this diagram不匹配 - 在该图的示例中(具有不同的模型名称),从患者到约会的箭头将朝另一个方向运行。

提前致谢

1 个答案:

答案 0 :(得分:0)

你的尝试是正确的方法。 您的模型必须具有以下关联:

模型/ sophead.rb

class Sophead < ApplicationRecord
  has_many :ods
  has_many :od_items, through: :ods
end

模型/ od.rb

class Od < ApplicationRecord
  belongs_to :sophead
  has_many :od_items
end

模型/ od_item.rb

class OdItem < ApplicationRecord
  belongs_to :od
end