我有以下“提交”模式。
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”关联的方式有问题吗?
非常感谢您的帮助:)
答案 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
希望这对其他人有帮助:)