Ruby on rails 3.2 太阳黑子索引有一个联系

Ruby on rails 3.2 太阳黑子索引有一个联系,ruby-on-rails-3.2,sunspot,Ruby On Rails 3.2,Sunspot,我有以下“提交”模型 class Submission < ActiveRecord::Base self.table_name = "SUBMISSION" self.primary_key = "SUB_ID" has_one :publication, :foreign_key => "PUB_SUBMISSION_FK", :dependent => :destroy has_one :refpublication,

我有以下“提交”模型

class Submission < ActiveRecord::Base
  self.table_name = "SUBMISSION"
  self.primary_key = "SUB_ID"

  has_one  :publication,             :foreign_key => "PUB_SUBMISSION_FK", :dependent => :destroy
  has_one  :refpublication,          :through => :publication

  belongs_to :submitter, :class_name => "Person", :foreign_key => "SUB_SUBMITTER_FK"


  #***************************************************************************************
  #Solr searchable attributes
  #***************************************************************************************

searchable do

  text :publication_PUB_REF_ID do
    publication.PUB_REF_ID
  end

  text :submitter_PER_NAME do
    submitter.PER_NAME
  end

  text :SUB_OID, :boost => 5
  text :SUB_ASSAY_TYPE

end

end #end of submission class
类提交“PUB\u SUBMISSION\u FK”,:dependent=>:destroy
有一个:refpublication,:到=>:publication
属于:提交者,:class\u name=>“Person”,:foreign\u key=>“SUB\u submitter\u FK”
#***************************************************************************************
#Solr可搜索属性
#***************************************************************************************
可搜索do
文本:出版物发布参考ID do
publication.PUB_REF_ID
结束
文本:提交人姓名
提交人的姓名
结束
文本:SUB_OID,:boost=>5
文本:SUB_分析类型
结束
结束#提交课程结束
当我运行rake太阳黑子:reindex时,我得到

雷克流产了! nil:NilClass的未定义方法'PUB_REF_ID'

我看不出上面的代码有什么问题`PUB_REF_ID'是“publications”表中的一个字段 我索引“has_one”关联的方式是否有问题

非常感谢您的帮助:)

找到了解决方案:)

并非所有提交的内容在我的“出版物”表中都有行

以下是我使用的解决方案:

而不是:

 text :publication_PUB_REF_ID do
    publication.PUB_REF_ID
  end
我使用:

 text :publication_PUB_REF_ID do
      publication.nil?? '' : (publication.PUB_REF_ID.nil?? '' : publication.PUB_REF_ID)
    end
希望这能对其他人有所帮助:)