1

我正在尝试使用包含过滤掉数组中的一些对象?方法,但我一直遇到这个错误undefined method 'include?' for #<Trip:0xa01b7b0>

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

行程.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 %>

基本上,我只想显示不包括当前事件交易(在控制器中定义)的行程。

关于为什么我得到未定义的方法错误的任何见解?

谢谢。

4

2 回答 2

3

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

<% if !trip.eventdeals.include?(@eventdeal) %>
于 2012-05-02T22:57:21.797 回答
2

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

我不确定你到底@trips是什么,但我猜它是一个 s 数组Trip。你也应该发布那个。

trip.eventdealtrips.include? @eventdealtrip
// or
trip != @eventdealtrip
于 2012-05-02T22:57:43.640 回答