0
我試圖讓我的用戶不能創建多個服務器場。在我的用戶模型中,我有:限制用戶在has_one關係中創建一個對象
has_one :farm
而且在我的農場模型,我有:
belongs_to :user
validate :farm_count_within_limit, :on => :create
def farm_count_within_limit
if self.user.farms(:reload).size > 1
errors.add(:base, "User can only add one farm")
end
end
但我收到此錯誤:
NoMethodError in FarmsController#create
undefined method `farms' for nil:NilClass
注意,這farm_count_within_limit前我能夠根據自己的需要創建儘可能多的農場。有沒有更好的方法來限制它,以便用戶只能添加一個農場?
讓我清楚,我在用戶遷移文件中添加此唯一索引? –
添加它的位置並不重要,可以在農場遷移或只是單獨遷移,如果你喜歡。它只需在創建農場表後運行。 – Iceman