2013-04-29 53 views
0

我可以在模型中設置虛擬訪問者,並將此訪問者設置爲思維獅身人面像中的字段或屬性?我想這樣的,但得到的錯誤「未定義的方法`型」的零:NilClass 」 指數模型:思維獅身人面像的虛擬訪問者

... 
has price_in_base_currency 

,並在型號:

.. 
attr_accessible :price 
attr_accessor :price_in_base_currency 

belongs_to :currency 

before_save :set_accessor 

def set_accessor 
price_in_base_currency = price * currency.rate 
end 

回答

1

我這樣做是有明確的SQL:

has "GROUP_CONCAT((price * currencies.rate) SEPARATOR ',')", :as => "price_in_base_currency", :type => :integer 
+1

如果它是單個值(而不是集合/多值屬性),則不需要GROUP_CONCAT。 Sphinx通過SQL連接,所以你的模型對象(和Ruby一般)不參與索引過程。 – pat 2013-04-29 23:59:23