Моя настройка: Rails 2.3.10, Ruby 1.8.7
users_controller.rb
def character
@user = User.find(params[:id])
respond_to do |format|
if @user.update_attributes(params[:user])
format.json { render :json => @user }
else
format.json { render :json=> @user.errors.full_messages, :status => :unprocessable_entity }
end
end
end
user.rb
accepts_nested_attributes_for :characters
has_many :characters
end
character.rb
belongs_to :user
before_create :check_count
def check_count
if Characters.find(:all, :conditions => ["user_id = ?", self.user_id).count == 3
errors.add_to_base I18n.t :exceeds
false
end
end
end
В методе символов пользователя (это пользовательский метод) я хочу создать дочерний символ, только если для пользователя еще нет 3 символов. Мой вопрос заключается в том, как вернуть сообщение об ошибке в объект @user из метода check_count, в настоящее время ошибки относятся к символьному объекту, а не к @user. Заранее благодарим за помощь.