Ruby on rails'有很多'关系错误:未定义的方法

时间:2014-04-15 06:26:09

标签: ruby-on-rails-4 associations models

我一直收到此错误

  

未定义的方法`音乐会'为   ActiveRecord的::关系:: ActiveRecord_Relation_Artist:0xb50b691c>

尝试这样做时:

<% @artists = Artist.where(name: "Test") %> 

<% @concertTest = @artists.concerts %> #this line raises the error

以下是我的模特:

class Concert < ActiveRecord::Base

    validates_presence_of :venue
    validates_presence_of :date

    has_many :reviews
    belongs_to :artist
end

class Artist < ActiveRecord::Base

    validates_presence_of :name
    has_many :concerts

end

我似乎无法弄清楚导致此错误的原因,以及为什么我不能以这种方式参考特定艺术家的音乐会。有什么建议?感谢

2 个答案:

答案 0 :(得分:1)

请尝试这样:

<% @artists = Artist.where(name: "Test").first %> 

<% @concertTest = @artists.concerts %> 

注意: - where将返回Active record relation数组。

答案 1 :(得分:0)

当我执行.find_by_name而不是.where

时,它可以正常工作
<% @artists = Artist.find_by_name("Test") %>
<% @concertTest = @artists.concerts %>

我不确定这个原因,但也许有人可以发表评论澄清它。