2010-02-15 1 views
0

Я предполагаю, что у меня много проблем, связанных с сообщениями об ошибках, а другое.Сообщения об ошибках, отображаемые в неправильном порядке при использовании accepts_nested_attributes_for

У меня есть следующие в моей модели

class Recipe < ActiveRecord::Base 
    has_many :recipe_ingredients 

    validates_presence_of :title, :message => "Recipe title cannot be left blank" 
    validates_presence_of :servingsize, :message => "Please enter a serving size for the recipe" 

    accepts_nested_attributes_for :recipe_ingredients 

end 

В модели «RecipeIngredient» У меня есть эта

class RecipeIngredient < ActiveRecord::Base 
    belongs_to :recipe 

    validates_presence_of :ingredient_id, :serving_size_id, :quantity 

end 

Теперь, когда я вижу сообщения об ошибках, которые я вижу сообщения об ошибках для модели ингредиента рецепта первой а не для модели рецепта. Как я могу сначала отображать сообщения об ошибках для модели рецепта?

Я бегу рубиновый v1.8.7 и v2.3.5 рельсы

Спасибо.

ответ

1

Как вы отображаете сообщения об ошибках, с error_messages_for? Я думаю, что ошибки хранятся в хеше, и в этом случае у него нет гарантированного порядка. Вы можете свернуть собственный помощник или как отображать ошибки inline:

<%= error_message_on @recipe, :title %> 
+0

Да, я использую error_messages_for. Однако у меня также есть собственное определение метода validate, поэтому я могу написать свои собственные сообщения об ошибках. Я думаю, что ваше предложение хорошее, а это (если я прав) - создать помощника, который построит строку всех сообщений об ошибках с помощью error_message_on, правильно? Таким образом, я смогу указать, где появляются ошибки. Спасибо – iJK

+0

Да, это будет один из способов. Я бы подумал об устранении всех сообщений об ошибках наверху и просто поместил каждую ошибку рядом с каждым входом. Тогда наверху вы можете сказать, пожалуйста, исправьте ошибки ниже, если @ recipe.valid? – tsdbrown

+0

Спасибо, я попробую. – iJK

Смежные вопросы