0

我有以下“提交”模型。

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:NilClass 的未定义方法“PUB_REF_ID”。

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

非常感激您的帮忙 :)

4

1 回答 1

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

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

于 2013-07-24T15:23:49.273 回答