使用关系和返回关系之间的区别
Difference between using a relation and returning a relation
我有一个新手 Rails 关于使用关系和返回关系之间的区别的问题:
所以我有一个 Folder
class has_many :files
。最初,我在 Folder
的 ActiveRecord 文件中定义了以下内容:
def visible_files
files.where(:hidden => false, :online => true) # This returns a relation, right?
end
现在,假设我将其切换为显式关系:
has_many :visible_files
:class_name => 'File',
:conditions => 'hidden is false and online is true'
这两种方法有什么区别?我怀疑后者是首选,但我想知道为什么。优先选择其中一个是否有任何性能原因?
两者做同样的事情,只是方式不同:它们提供了一种获取所有可见文件和在线文件的方法。
has_many
版本的不同之处在于它提供了额外的关联内容,as documented in the "Associations Guide"。其中一些特征将存在于方法返回的关系上(例如 create
),但其他特征(例如 build
则不会。
我有一个新手 Rails 关于使用关系和返回关系之间的区别的问题:
所以我有一个 Folder
class has_many :files
。最初,我在 Folder
的 ActiveRecord 文件中定义了以下内容:
def visible_files
files.where(:hidden => false, :online => true) # This returns a relation, right?
end
现在,假设我将其切换为显式关系:
has_many :visible_files
:class_name => 'File',
:conditions => 'hidden is false and online is true'
这两种方法有什么区别?我怀疑后者是首选,但我想知道为什么。优先选择其中一个是否有任何性能原因?
两者做同样的事情,只是方式不同:它们提供了一种获取所有可见文件和在线文件的方法。
has_many
版本的不同之处在于它提供了额外的关联内容,as documented in the "Associations Guide"。其中一些特征将存在于方法返回的关系上(例如 create
),但其他特征(例如 build
则不会。