ruby-on-rails - new - raw query ruby on rails
Rails 3.1 limita los objetos creados por el usuario (2)
Me gustaría limitar la cantidad de Objetos modelo que un usuario puede crear. Lo he intentado a continuación, pero no está funcionando. Entiendo que algunos cambios han sucedido en Rails 3.1 y no estoy seguro de cómo lograr esto ahora.
class User < ActiveRecord::Base
has_many :things, :limit => 5, :dependent => :destroy # This doesn''t work
end
class Things <ActiveRecord::Base
belongs_to :user
end
Pruebe algo como esto:
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
Editar : actualizado para Rails 3
No funcionó en Rails 3.2.1. Count siempre es igual a 0
. Lo he reemplazado con self.user.things.size
y ahora funciona.