Ruby on rails ActiveRecord_Associations_CollectionProxy未定义的方法

时间:2016-06-12 15:20:44

标签: ruby-on-rails

电影模特:

class Movie < ActiveRecord::Base
   has_many :trailerlinks
end

预告片型号:

class Trailerlink < ActiveRecord::Base
    belongs_to :movie
end

在我的电影控制器中使用此

class MoviesController < ApplicationController

    def show
        @drama = Drama.find(params[:id])
        @link = @drama.trailerlinks
    end
end

在我看来,我用这个来表明:

<%= @link.id %>

显示如下错误:

undefined method `id' for #<ActiveRecord::Associations::CollectionProxy []>

怎么解决呢?可以教我吗?

1 个答案:

答案 0 :(得分:0)

由于movie有很多trailerlinks,我认为Drama是电影的STI关联,然后@link = @drama.trailerlinks将返回数组对象在CollectionProxy对象中,它没有`id属性。

要获取id属性,请遍历数组或从中获取对象:

在控制器中: @link = @drama.trailerlinks.first

OR

在视图中

<% @link.each do |l| %>
  <%= l.id %>
<% end %>