Ruby on rails 3 ActiveRecord关联的属性查询方法

Ruby on rails 3 ActiveRecord关联的属性查询方法,ruby-on-rails-3,activerecord,Ruby On Rails 3,Activerecord,我有一个简单的模型: class项目

我有一个简单的模型:

class项目
Project有几个属性,如:date、:name,对于这些属性,我可以使用属性查询方法:

project.date?
项目名称?
但我没有:

project.user?
相反,我有:

project.user_id?
只要看一眼代码,就会发现这是因为实际的“属性”是用户id,而这就是属性查询方法的目的?这似乎是这个想法的逻辑延伸,为关系也提供了查询方法

通常的做法是什么?似乎我们有一些粗略的等价物可供选择:

project.user.present?
project.user.blank?
project.user.nil?

或者只需使用
{relation}\u id?
方法并停止抱怨?

为什么不自己在project上定义一个方法来满足您期望的API

class Project < ActiveRecord::Base

  def user?
   true if user.present?
  end
end
class项目

我认为Ruby中的最佳实践,坦率地说,在所有编程中都是明确指定您的接口,如果您认为是用户?这是最好的方法,然后我说去做。

当然,我觉得奇怪的是,除了那些碰巧基于关联的属性之外,看到生成的状态检查所有属性的简短方法。如果AR自动处理所有这些,为什么要区分?