Why do I get a "Variable used before being initialized" error on the line that I initialise the variable in Swift?
I would like to limit the number of model Objects a user can create. I've tried the below but it is not working. I understand some changes have happened in rails 3.1 and not sure how to accomplish this now.
class User < ActiveRecord::Base
has_many :things, :limit => 5, :dependent => :destroy # This doesn't work
end
class Things <ActiveRecord::Base
belongs_to :user
end
Solution 1:
Try something like this:
class User < ActiveRecord::Base
has_many :things
end
class Things <ActiveRecord::Base
belongs_to :user
validate :thing_count_within_limit, :on => :create
def thing_count_within_limit
if self.user.things(:reload).count >= 5
errors.add(:base, "Exceeded thing limit")
end
end
end
Edit: updated for Rails 3
Solution 2:
It did not work on Rails 3.2.1. Count always equals to 0
. I have replaced it with self.user.things.size
and now it works.