Getting Started Rails Guide вид глянца над этой частью, так как он не реализует «новое» действие контроллера комментариев. В моем приложении, у меня есть модель книги, которая имеет много глав:Rails 3: Как создать новый вложенный ресурс?
class Book < ActiveRecord::Base
has_many :chapters
end
class Chapter < ActiveRecord::Base
belongs_to :book
end
В моих маршрутах ФАЙЛА:
resources :books do
resources :chapters
end
Теперь я хочу реализовать «новое» действие контроллера Chapters:
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
Каков правильный способ сделать это? Кроме того, как выглядит сценарий вида (формы)?
Для рефакторинга кода - также можно использовать метод get_book, чтобы найти книгу @book = Book.find (params [: book_id]), а затем использовать этот метод как фильтр before. Это связано с тем, что для любого метода, который вы реализуете в контроллере главы, нужен объект книги, к которому он принадлежит. – Ninad
Re: комментарий выше, если у вас было несколько детей книги, вы бы реорганизовали метод get_book в 'BookHelper' и' include BookHelper' в вашем контроллере книг и контролерах, связанных с книгами. – ocodo
Это не создает дополнительный запрос select для db? –