What I want is to create a Model that connects with another using a has_many association in a dynamic way, without the foreign key like this:
has_many :faixas_aliquotas, :class_name => 'Fiscal::FaixaAliquota', :conditions => ["regra_fiscal = ?", ( lambda { return self.regra_fiscal } ) ]
But I get the error:
: SELECT * FROM "fis_faixa_aliquota" WHERE ("fis_faixa_aliquota".situacao_fiscal_id = 1 AND (regra_fiscal = E'--- !ruby/object:Proc {}'))
Is this possible?
has_many :faixas_aliquotas, -> (object) { where("regra_fiscal = ?", object.regra_fiscal) }, :class_name => 'Fiscal::FaixaAliquota'
has_many :faixas_aliquotas, :class_name => 'Fiscal::FaixaAliquota', :conditions => proc { "regra_fiscal = #{self.regra_fiscal}" }
has_many :faixas_aliquotas, :class_name => 'Fiscal::FaixaAliquota', :conditions => ['regra_fiscal = #{self.regra_fiscal}']
No. This is not a mistake. The conditions are specified in single quotes and still contains the code #{self.regra_fiscal}
. When the conditions clause is evaulated, the regra_fiscal method will be called on the object of self
(whatever the class is). Putting double quotes will not work.
I hope this is what you are looking for.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With