0
我有一个简单的模型:ActiveRecord的关联属性的查询方法
class Project < ActiveRecord::Base
belongs_to :user
class User < ActiveRecord::Base
has_many :projects
项目有几个属性,如:日期,:姓名,并为这些属性我有属性可供查询方法对我说:
project.date?
project.name?
但是我没有:
project.user?
相反,我有:
project.user_id?
瞥一眼代码显示这是因为实际的“属性”是user_id,这就是属性查询方法的目的?对于关系来说,查询方法也是这个想法的逻辑延伸。
常见的做法是什么?看来我们有一些粗略的等价物可供选择:
project.user.present?
project.user.blank?
project.user.nil?
或者仅使用{relation}_id?
方法和停止抱怨?
当然,对于除了刚好基于关联的属性之外的所有属性,都可以看到生成的存在检查简短方法,这似乎很奇怪。如果AR自动处理所有这些,为什么区分? – 2012-02-29 15:33:15