Ruby on rails 创建关联和作用域
我阅读了Ryan Bigg的“Rails多租户”,我正在使用Ruby on Rails创建一个多租户应用程序 我做了两个模型,租户和用户。 租户有多个用户,用户属于租户 为了关联这些模型,我制作了这个文件 活动记录扩展.rbRuby on rails 创建关联和作用域,ruby-on-rails,ruby,ruby-on-rails-4,activerecord,rails-activerecord,Ruby On Rails,Ruby,Ruby On Rails 4,Activerecord,Rails Activerecord,我阅读了Ryan Bigg的“Rails多租户”,我正在使用Ruby on Rails创建一个多租户应用程序 我做了两个模型,租户和用户。 租户有多个用户,用户属于租户 为了关联这些模型,我制作了这个文件 活动记录扩展.rb ActiveRecord::Base.class\u eval do def自作用域_到_租户 属于:承租人 关联\u name=self.to\u.downcase.pluralize Tenant.has_许多关联名称。to_sym,类别名称:self.to_s 终止
ActiveRecord::Base.class\u eval do
def自作用域_到_租户
属于:承租人
关联\u name=self.to\u.downcase.pluralize
Tenant.has_许多关联名称。to_sym,类别名称:self.to_s
终止
终止
并将“作用域为租户”添加到User.rb
class用户
当我想要获得一个租户(id=1)的所有用户时,我可以通过以下代码获得它。
问题是,我写的和写的有什么区别
belongs_to :tenant
到User.rb并使用作用域为“”的租户方法
在这两种情况下,Tenant.rb都是这样
Tenant.rb
谢谢你的回答。
我可能会把英语弄错,所以如果你听不懂,请告诉我。调用
范围到租户的方法调用属于你的方法,并将许多关联添加到租户
这与执行此操作相同:
# app/model/user.rb
class User < ActiveRecord::Base
belongs_to :tenant
end
# app/model/tenant.rb
class Tenant < ActiveRecord::Base
has_many :users
end
#app/model/user.rb
类用户
scoped\u-to\u-tenant
的好处是,您不必关心添加与tenant
模型的关系。
如果您只有一个模型与租户关联,则不需要此扩展。也许,这些都是相同的,创建范围为\u to \u租户的原因只是为了用作帮助器。。。?
# app/model/user.rb
class User < ActiveRecord::Base
belongs_to :tenant
end
# app/model/tenant.rb
class Tenant < ActiveRecord::Base
has_many :users
end