0
我有以下方法可以檢查某個人是否通過編號和運營商進行了集成,並且如果不符合通過編號進行的集成。如何在has_one關聯上傳遞嵌套值
class Person
has_one :number
def integration
number_and_carrier = Integration.where('number_id = ? and carrier_id = ?', number.id, carrier.id) if number && carrier
Integration.where('number_id = ?', number.id) if number && number_and_carrier.nil?
end
end
下面的代碼工作正常。但我想知道如何使用has_one
關聯完成同樣的操作,以便我可以完全控制返回的集成對象。我能想象開始像這樣
has_one :integration, foreign_key: :number_id
但我這是使用電流person_id
(7750),而不是number_id
快速實現。
SELECT "integrations".* FROM "integrations" WHERE "integrations"."number_id" = 7750 LIMIT 1
我的問題是
- 我怎樣才能通過
number.id
到has_one
關聯? - 如何能在
has_one
查詢可以保持方法查詢(查詢,如果一個人的號碼和運營商有一個整合,如果不匹配數的積分只)