2013-04-29 55 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