Я использовал запрос, подобный следующему.Но у меня есть несколько проблем.
self.rad_user_group.groupname = Radgr.select(:groupname).joins(:nas).where(nas: {tenant_id: :tenant_id},nas: {realipaddr: "192.168.22.175"})
Я получаю предупреждение, похожее на то, которое вышло из консоли.
(irb):1: warning: key :nas is duplicated and overwritten on line 1
Вывод на консоль
2.4.1 :001 > Radgr.select(:groupname).joins(:nas).where(nas: {tenant_id: :tenant_id}, nas: {realipaddr: "78.189.33.53"})
(irb):1: warning: key :nas is duplicated and overwritten on line 1
(0.4ms) SET NAMES utf8, @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483
Radgr Load (0.2ms) SELECT `radgrs`.`groupname` FROM `radgrs` INNER JOIN `nas` ON `nas`.`tenant_id` = `radgrs`.`id` WHERE `nas`.`realipaddr` = '78.189.33.53' LIMIT 11
=> #<ActiveRecord::Relation [#<Radgr id: nil, groupname: "Testo2">]>
Самое главное, что он записывает SQL, но записывает его следующим образом.
#<Radgr::ActiveRecord_Relation:0x007fbc9c3cb1e8>
Если я добавлю .to_a
в конец запроса, то запись будет продолжаться.
[#<Radgr id: nil, groupname: "Testo2">]
Как мы можем решить эти проблемы?