未定义的方法`include?'对于关系模型

时间:2012-05-02 22:43:35

标签: ruby-on-rails ruby-on-rails-3 relationship

我试图通过使用include过滤掉数组中的一些对象?方法,但我一直遇到此错误undefined method 'include?' for #<Trip:0xa01b7b0>

我基本上有两个型号,eventdeal和trip。我创建了第三个关系模型eventdealtrip,它将两个模型联系在一起。

trip.rb

class Trip < ActiveRecord::Base
  has_many :eventdealtrips, :dependent => :destroy
  has_many :eventdeals, :through => :eventdealtrips
end

eventdeal.rb

class Eventdeal < ActiveRecord::Base
  has_many :eventdealtrips
  has_many :trips, :through => :eventdealtrips, :dependent => :destroy
end

eventdealtrip.rb

class Eventdealtrip < ActiveRecord::Base
  belongs_to :eventdeal
  belongs_to :trip
end

eventdealtrips / new.html.erb

<% if !@trips.blank? %>
  <% @trips.each do |trip| %>
    <% if !trip.include?(@eventdeal) %>
       <!--Content-->
    <% end %>
  <% end %>
<% end %>

基本上,我只想显示不包含当前eventdeal(在控制器中定义)的行程。

有关为何我收到未定义方法错误的任何见解?

感谢。

2 个答案:

答案 0 :(得分:3)

包括哪?方法通常用于数组,试试这个:

<% if !trip.eventdeals.include?(@eventdeal) %>

答案 1 :(得分:2)

你确定trip是一个数组吗?你试过trip.inspect吗?

我不确定你的@trips到底是什么,但我想这是Trip的数组。你也应该张贴。

trip.eventdealtrips.include? @eventdealtrip
// or
trip != @eventdealtrip