Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 创建关联和作用域_Ruby On Rails_Ruby_Ruby On Rails 4_Activerecord_Rails Activerecord - Fatal编程技术网

Ruby on rails 创建关联和作用域

Ruby 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 终止

我阅读了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
终止
终止
并将“作用域为租户”添加到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