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