我正在尝试创建一个链接来在我的Rails 3应用程序中创建一个新的嵌套资源,但我无法弄明白。链接到新嵌套资源的语法是什么
确保您的资源已正确嵌套在路线文件中。
resources :books do
resources :chapters
end
然后在您的视图脚本中,您可以这样调用它:
<%= link_to 'New Chapter', new_book_chapter_path(@book) %>
The Rails Guide on Routing非常有用。
注意:如果收到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
答案 0 :(得分:3)
将路线更改为
map.resources :books do |book|
book.resources :chapters
end
然后使用此
link_to new_book_chapter_path(@book)
您还可以使用此链接更好地理解概念 Nested Routes