Nested-Modell-Validierung - Fehler nicht anzeigen

Gab es viele Fragen zu diesem Thema, aber keiner von Ihnen scheinen zu helfen. Und ja, ich habe gesehen, wie diese Schienen cast.

Habe ich ein Autor, der viele Bücher, etwa so:

Autor:

class Author < ActiveRecord::Base
  attr_accessible :name
  has_many :books, dependent: :destroy

  accepts_nested_attributes_for :books, allow_destroy: true

  validates :name, presence: true
  validates :name, length: { minimum: 3 }
end

Buch:

class Book < ActiveRecord::Base
  attr_accessible :name, :year
  belongs_to :author

  validates :name, :year, presence: true
  validates :year, numericality: { only_integer: true, less_than_or_equal_to: Time.now.year }
end

Ich habe das folgende Formular aus, um ein Buch hinzuzufügen, die dem Autor im Autoren#show:

<%= form_for([@author, @book], html: { class: "well" }) do |f| %>
<% if @book.errors.any? %>
    <div class="alert alert-block">
        <ul>
            <% @author.errors.full_messages.each do |msg| %>
                <li><%= msg %></li>
            <% end %>
        </ul>
    </div>
<% end %>
#labels and buttons...
<% end %>

...mit folgenden authors_controller Methode:

def show
    @author = Author.find(params[:id])
    @book = @author.books.build
end

...und die folgenden books_controller Methode:

def create
    @author = Author.find(params[:author_id])
    if @author.books.create(params[:book])
      redirect_to author_path(@author)
    else
      render action: :show
    end
  end

Ich kann nicht scheinen, um herauszufinden, warum das Formular zeigt keine Fehlermeldungen. Ich folgte dem Beispiel von railscasts, wenn Sie sagen, es sollte eine Instanz-variable von Büchern in der form statt @Autor.Bücher.bauen, so habe ich letztere in der Steuerung und @Buch in der form - noch ohne Erfolg.

Vielen Dank für jede Hilfe!!!

InformationsquelleAutor dchacke | 2012-10-19
Schreibe einen Kommentar