Написание правильных ошибок валидации? - PullRequest
0 голосов
/ 17 августа 2010

Обновление: выпотрошен весь вопрос с более полным описанием

Хорошо, тот же вопрос с разными именами.

В моей модели я проверяю наличие.

class QuickFact < ActiveRecord::Base
 belongs_to :organization

 validates_presence_of :quick_fact, :content

Но если любой из них пуст, он выдает ошибку:

Missing template organizations/_quick_fact_fields.erb

Вот подвох. У меня есть вложенная модель формы с динамически добавляемыми частями к ней. Как следует отсюда:

http://railscasts.com/episodes/197-nested-model-form-part-2

Именно это генерирует и вызывает _quick_fact_fields.erb. Но это прекрасно работает и находится в пределах quick_facts/_quick_fact_fields.html.haml

Обновление: код моего контроллера

organizations_controller.rb

def update
  if @organization.update_attributes(params[:organization])
    ..
    elsif params[:organization][:quick_facts_attributes]
      flash[:notice] = 'QuickFacts successfully updated.'
      redirect_to organization_quick_facts_url(@organization)
    else
      flash[:notice] = 'Organization was successfully updated.'
      redirect_to :action => 'edit'
    end
  else
    # re-render last form
    ..
    elsif params[:organization][:quick_facts_attributes]
      render :template => "quick_facts/index"
    else
      render :action => 'edit'
    end
  end
end

Ответы [ 2 ]

2 голосов
/ 17 августа 2010

Кажется, что вы пытаетесь визуализировать my_custom_field частичное из одного из рабочих представлений, найденных в app/views/worker, но, по-видимому, такого частичного нет.Если вы покажете нам код соответствующих представлений и контроллеров, вам будет легче точно определить точную проблему.

В примечании стороннего специалиста вы могли бы просто сделать validates_presence_of :name вместо определения пользовательского метода проверки для упрощениятвоя модельОднако это, скорее всего, не связано с ошибкой, которую вы описываете, и является лишь общим предложением по улучшению.

0 голосов
/ 17 августа 2010

Понял.У меня было два контроллера.

quick_facts_controller.rb и organiz_controller.rb

Как только я удалил функцию обновления в quick_facts_controller, она заработала нормально.

...