如何获取模型关联的数据

时间:2017-01-18 00:18:32

标签: ruby-on-rails model associations

如何获取模型关联数据

这是我的模特。

user.rb

has_many :movie
has_many :quality
has_many :option

movie.rb

belongs_to :user
has_many :quality, :dependent => :destroy

quality.rb

belongs_to :movie
belongs_to :user
has_many :option

option.rb

belongs_to :user
belongs_to :quality
has_one :movie, :through => :quality

这是我的控制器

movie_controller.rb

def show
   @movie = Movie.find(params[:id])
end

在我看来,我有这个。

-@movie.qualities.option do |o|
  =o.name

diagram

我希望获得电影品质的所有名称。 请帮帮我。

2 个答案:

答案 0 :(得分:0)

你需要改变所有与复数的关系

has_many :movies
has_many :qualities
has_many :options
# etc

和选项belongs_to movie

答案 1 :(得分:0)

您的最终代码应如下所示

<强> user.rb

has_many :movies
has_many :qualities, through: :movies
has_many :options, through: :qualities

<强> movie.rb

belongs_to :user
has_many :qualities, dependent: :destroy

<强> quality.rb

belongs_to :movie
has_one :user, through: :movie
has_many :options

<强> option.rb

belongs_to :quality
has_one :user, through: :quality
has_one :movie, through: :quality

<强> movie_controller.rb

def show
   @movie = Movie.find(params[:id])
end

查看应该是这样的。

- @movie.qualities.each do |quality|
  - quality.options.each do |option|
    = option.name

干杯:)