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