尝试尝试在另一个控制器中实现模型的虚拟属性的问题。有没有办法做到这一点?
这是虚拟属性:
def montant
self.facture_details.sum(:montant_detail)
end
def paiements
self.facture_paiements.sum(:montant)
end
def facture_statut
if self.paiements < self.montant
then
"Ouverte"
else
"Payée"
end
end
在另一个控制器中,我正在尝试做:
@factures = Facture.find(:all, :conditions => {:facture_statut => 'Ouverte'})
当我这样做时,我得到了一个错误:
SQLite3::SQLException: no such column: factures.facture_statut: SELECT "factures".* FROM "factures" WHERE "factures"."facture_statut" = 'Ouverte'
有人帮我解决这个问题吗?
谢谢
更新; 这是完整的模型:
class Facture < ActiveRecord::Base
has_many :facture_details, :dependent => :destroy
has_many :facture_paiements
accepts_nested_attributes_for :facture_details, :allow_destroy => true
accepts_nested_attributes_for :facture_paiements
attr_accessor :facture_statut
attr_accessor :montant
attr_accessor :paiements
def montant
self.facture_details.sum(:montant_detail)
end
def paiements
self.facture_paiements.sum(:montant)
end
def facture_statut
if self.paiements < self.montant
then
"Ouverte"
else
"Payée"
end
end
end