我有一个关于使用关系和返回关系之间区别的新手Rails问题:
所以我有Folder
班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'
这两种方法有什么区别?我怀疑后者是首选,但我想知道原因。是否有任何表现理由让他们更喜欢一个?
答案 0 :(得分:1)
两者都以不同的方式做同样的事情:它们提供了获取所有可见和在线文件的方法。
has_many
版本的不同之处在于它提供了额外的关联内容as documented in the "Associations Guide"。其中一些功能将存在于方法返回的关系中(例如create
),但build
之类的其他功能会赢得