Ruby on Rails 3: link_to создать новый вложенный ресурс? - PullRequest
7 голосов
/ 23 сентября 2010

Я пытаюсь создать ссылку для создания нового вложенного ресурса в моем приложении на Rails 3, но не могу понять. Каков синтаксис для ссылки на новый вложенный ресурс

Решение:

Убедитесь, что ваши ресурсы правильно вложены в файл маршрутов.

resources :books do
  resources :chapters
end

Тогда в вашем скрипте вида вы можете назвать его так:

<%= link_to 'New Chapter', new_book_chapter_path(@book) %>

Руководство Rails по маршрутизации было весьма полезным.

Примечание: если вы получаете сообщение типа Couldn't find Book without an ID, проблема не в ссылке, а в коде вашего контроллера.

def new
  @book = Book.find(params[:book_id]) #instead of :id
  @chapter = @book.chapter.new
  respond_with(@chapter)
end

1 Ответ

3 голосов
/ 23 сентября 2010

вносить изменения в маршруты как

map.resources :books do |book|
    book.resources :chapters
end

и затем используйте это

link_to new_book_chapter_path(@book)

Вы также можете использовать эту ссылку, чтобы лучше понять концепцию Вложенные маршруты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...