El tipo Getting Started Rails Guide glosa esta parte ya que no implementa la "nueva" acción del controlador de comentarios. En mi solicitud, tengo un modelo de libro que tiene muchos capítulos:Rails 3: ¿Cómo crear un nuevo recurso anidado?
class Book < ActiveRecord::Base
has_many :chapters
end
class Chapter < ActiveRecord::Base
belongs_to :book
end
en mis rutas de archivos:
resources :books do
resources :chapters
end
Ahora quiero poner en práctica la "nueva" acción del controlador de Capítulos:
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
¿Cuál es la forma correcta de hacerlo? Además, ¿a qué debería parecer el script de vista (formulario)?
Para refacturar el código, también se puede usar el método get_book para encontrar el libro @book = Book.find (params [: book_id]) y luego usar este método como filtro anterior. Esto se debe a que cualquier método que implemente en el controlador del capítulo necesitaría el objeto del libro al que pertenece. – Ninad
Re: el comentario anterior, si tuviera varios hijos del libro, refactorizaría el método 'get_book' en' BookHelper' y 'include BookHelper' en el controlador de libros y en los controladores relacionados con libros. – ocodo
¿Esto no crea una consulta de selección adicional a db? –