gpt4 book ai didi

ruby-on-rails - HABTM 关联上的 Rails 4 范围

转载 作者:行者123 更新时间:2023-12-04 22:11:20 24 4
gpt4 key购买 nike

我是一个 Rails 新手,我在 HABTM 协会上创建了一个范围,但我仍然认为它看起来不自然,不优雅,所以我认为必须有更好的方法来做到这一点。如果有这样更好的方法,有人可以告诉我吗?我看过其他帖子,人们有同样的问题( Scope for Self-joining HABTM Association )没有答案......

class User < ActiveRecord::Base
has_and_belongs_to_many :roles, :join_table => :users_roles
end

class Role < ActiveRecord::Base
has_and_belongs_to_many :users, :join_table => :users_roles
end

scope :by_role, lambda { |role_name| joins('join users_roles on users.id = users_roles.user_id').
joins('join roles on users_roles.role_id = roles.id').
where('roles.name = ?', role_name) }

最佳答案

试试这个。它更优化。

 scope :by_role,  ->(role) { joins(:roles).where(roles: { name: role }) }

关于ruby-on-rails - HABTM 关联上的 Rails 4 范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31638666/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com