NoMethodError([]:Array的未定义方法`gsub':

时间:2012-03-15 12:39:10

标签: ruby-on-rails ruby solr mongoid sunspot

我有下一个带有数组字段的模型:

Class Invitation
 include Mongoid::Document
 include Mongoid::Timestamps::Created
 include Sunspot::Mongo

 # this is the relation. Is not a field
 has_many :recipients, :class_name => 'Invitation', :foreign_key => :recipient_id
 attr_accessible :recipients

 searchable do
  string :recipients, :multiple => true do
    recipients.map { |r| r.recipients.to_s }
  end
end

我在我的控制器中:

def recipients

 @invitation = Invitation.find(params[:id])
 @search = Invitation.search do |s|
 s.fulltext params[:search]
 s.with(:recipients, @invitation.recipients)
 end

@recipients = @search.results
  respond_to do |format|
   format.html
  end

end

错误的行是@search = Invitation.search do |s|

我收到了下一个错误:

NoMethodError (undefined method `gsub' for ["#<Invitation:0x9a1c6e8>"]:Array):

如何解决此问题?¿ 谢谢

1 个答案:

答案 0 :(得分:-4)

显然,它告诉你,数组donot具有gsub功能。 使用gsub处理的对象是一个数组类。 你应该指定一个正确的类型。

顺便说一句,你没有给出错误的行号。