rails版本: gem ‘rails’, ‘~> 5.2.0’
ruby 版本: ruby ‘2.5.1’
ransack 版本: gem ‘ransack’, ‘~> 1.8’
user.rb 、 users_role.rb 、 role.rb
users 和 roles 通过 users_roles多对多关联
在添加gem 'ransack', '~> 1.8'
后导致,关联查询有问题:
pry(main)> User.first.roles
#结果为:
User Load (1.3ms) SELECT `users`.* FROM `users` ORDER BY `users`.`id` ASC LIMIT 1
=> #<Role::ActiveRecord_Associations_CollectionProxy:0x2af40daec370>
#并未查询roles
将ransack版本改为:gem 'ransack', '~> 2.1'
后,查询正常:
pry(main)> User.first.roles
#结果为:
User Load (0.8ms) SELECT `users`.* FROM `users` ORDER BY `users`.`id` ASC LIMIT 1
Role Load (3.4ms) SELECT `roles`.* FROM `roles` INNER JOIN `users_roles` ON `roles`.`id` = `users_roles`.`role_id` WHERE `users_roles`.`user_id` = 1
=> [#<Role:0x00005556b26500a0 id: 1, name: "超级管理员", desc: "aa", created_at: Sat, 12 May 2018 08:05:03 CST +08:00, updated_at: Sat, 12 May 2018 13:08:28 CST +08:00>]