неудачные результаты проверки в очищаемых значениях формы + ошибки проверки не отображаются - PullRequest
0 голосов
/ 10 декабря 2010

Я новичок в рельсах, так что, надеюсь, это будет легко. Вот что у меня есть:

Модели / school.rb

class School < ActiveRecord::Base
  has_many :courses
end

Модели / course.rb

class Course < ActiveRecord::Base
  belongs_to :school
  validates_presence_of :grade, :subject
end

конфиг / routes.rb

map.resources :schools, :has_many => :courses

Вид / курсы / new.html.erb

<% form_for [@school, Course.new] do |f| %>
  <%= f.error_messages %>
  ...
<% end %>

courses_controller.rb

  def create
    @school = School.find(params[:school_id])
    @course = @school.courses.new(params[:course])
    if @course.save
      flash[:notice] = 'Course was successfully created.'
      redirect_to(@school)
    else
      respond_to do |format|
        # bug: form clears and no validation error messages are displayed
        format.html { render :action => "new" }
      end
    end
  end

При сбое проверки выполняется действие new, но значения формы очищаются, и я не вижу сообщений о сбое проверки. Чего мне не хватает?

Ответы [ 2 ]

2 голосов
/ 10 декабря 2010

В вашем courses_controller.rb вы создали

def new

@course = @school.courses.new()

конец

и в своей форме вы должны упомянуть

<% form_for [@school, Course.new] do | f | %>

<% = f.error_messages%>

...

<% end%>

Вот почему ваши сообщения об ошибках не появляются в вашей форме

0 голосов
/ 10 декабря 2010

Вам необходимо указать, где сообщения об ошибках будут отображаться на вашем экране.

Вид / курсы / newhtml.erb

<%= error_messages_for 'course' -%>
<% form_for [@school, Course.new] do |f| %>
...
<% end %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...