Die Getting Started Rails Guide Art von Glossen über dieses Teil, da es nicht die "neue" Aktion des Comments-Controllers implementiert. In meiner Anwendung habe ich ein Buch Modell, das viele Kapitel hat:Schienen 3: Wie erstellt man eine neue verschachtelte Ressource?
class Book < ActiveRecord::Base
has_many :chapters
end
class Chapter < ActiveRecord::Base
belongs_to :book
end
In meiner Routen-Datei:
resources :books do
resources :chapters
end
nun die "neue" Aktion des Chapters Controller implementieren Ich mag:
class ChaptersController < ApplicationController
respond_to :html, :xml, :json
# /books/1/chapters/new
def new
@chapter = # this is where I'm stuck
respond_with(@chapter)
end
Was ist der richtige Weg? Wie sollte das View-Skript (Formular) aussehen?
Zum Refactoring des Codes - man kann auch die get_book-Methode verwenden, um book @ book = Book.find (params [: book_id]) zu finden und diese Methode dann als Vorher-Filter zu verwenden. Dies liegt daran, dass jede Methode, die Sie im Kapitelcontroller implementieren, das Buchobjekt benötigt, zu dem sie gehört. – Ninad
Re: Der Kommentar oben, wenn Sie mehrere Kinder des Buches hatten, würden Sie die "get_book" -Methode in 'BookHelper' und' include BookHelper' in Ihrem Bücher-Controller und Bücher bezogenen Controllern umgestalten. – ocodo
Dies erstellt keine extra Select-Abfrage zu db? –