亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Rails has_many具有動態條件

Rails has_many具有動態條件

SMILET 2019-11-14 10:52:19
我想要的是創建一個模型,該模型使用has_many關聯以動態方式與另一個模型連接,而無需像這樣的外鍵:has_many :faixas_aliquotas, :class_name => 'Fiscal::FaixaAliquota',            :conditions => ["regra_fiscal = ?", ( lambda { return self.regra_fiscal } ) ]但是我得到了錯誤:: SELECT * FROM "fis_faixa_aliquota" WHERE ("fis_faixa_aliquota".situacao_fiscal_id = 1AND (regra_fiscal = E'--- !ruby/object:Proc {}'))這可能嗎?
查看完整描述

3 回答

?
繁花如伊

TA貢獻2012條經驗 獲得超12個贊

Rails 4+方式(感謝Thomas在下面回答了此問題):

has_many :faixas_aliquotas, -> (object) { 

           where("regra_fiscal = ?", object.regra_fiscal)

         },

         :class_name => 'Fiscal::FaixaAliquota'

Rails 3.1+方式:

has_many :faixas_aliquotas, :class_name => 'Fiscal::FaixaAliquota',

         :conditions => proc { "regra_fiscal = #{self.regra_fiscal}" }

Rails 3及以下:

has_many :faixas_aliquotas, :class_name => 'Fiscal::FaixaAliquota',

         :conditions => ['regra_fiscal = #{self.regra_fiscal}']

不,這不是錯誤。條件用單引號引起來,仍然包含代碼#{self.regra_fiscal}。當條件子句被撤消時,regra_fiscal方法將在的對象上調用self(無論該類是什么)。用雙引號將不起作用。


我希望這是您要尋找的。


查看完整回答
反對 回復 2019-11-14
?
滄海一幻覺

TA貢獻1824條經驗 獲得超5個贊

Rails 4 +方式:


has_many :faixas_aliquotas, -> (object){ where("regra_fiscal = ?", object.regra_fiscal)},  :class_name => 'Fiscal::FaixaAliquota'


查看完整回答
反對 回復 2019-11-14
  • 3 回答
  • 0 關注
  • 870 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號