太阳黑子 - 索引has_one关联

时间:2013-07-24 15:17:26

标签: 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,          :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

当我运行rake sunspot:reindex时,我得到了

耙子流产了! nil的未定义方法`PUB_REF_ID':NilClass。

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

非常感谢您的帮助:)

1 个答案:

答案 0 :(得分:1)

找到解决方案:)

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

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

而不是:

 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

希望这对其他人有帮助:)