2013-07-24 85 views
0

我有以下'提交'模型。太陽黑子 - 索引has_one關聯

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 

當我運行耙太陽黑子:重新索引,我得到

耙中止! 對於nil:NilClass,未定義的方法`PUB_REF_ID'。

我看不出上面的代碼有什麼問題。 `PUB_REF_ID'是'publications'表中的字段 我索引'has_one'關聯的方式有問題嗎?

你的幫助是非常讚賞:)

回答

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 

希望這可以幫助別人:)