在rails上學習ruby,玩弄路由和路徑方法。 我已經用模型「Book」和「Author」構建了一個相當簡單的應用程序。每個作者可以有許多書籍,每本書都屬於作者等。紅寶石path_to只在明確的時候才起作用
我有一個作者控制器,其中列出了所有作者的#list方法。當它這樣做時,它也會迴應出所有的書。現在,我希望每本書都能指向使用我發現的這種漂亮路徑方法的書籍。
這裏是我的代碼片段:
<% @authors.each do |author| %>
<li><%= author.name %></li>
<ul>
<% author.books.all.each do |book| %>
<li><%= link_to book.name, controller: :books, action: :show, id: book.id %></li>
<% end %>
</ul>
<% end %>
有了這個link_to book.name, controller: :books, action: :show, id: book.id
它工作正常,但東西告訴我,同樣可以實現更加容易。如果我使用books_show_path(book)
它不會工作。
我的路線如下所示:
根: '作者#列表'
match 'authors/list' => 'authors#list'
match 'books/list' => 'books#list'
match 'authors/:id/delete' => 'authors#delete'
match 'authors/:id/show' => 'authors#show'
match 'books/:id/show' => 'books#show'
什麼我錯在這裏做什麼?我需要做些什麼來使books_show_path(book)
工作?
真棒,謝謝!還有一個問題:我怎麼沒有在路線中說'match'books/list'=>'books#list'',以便它接受books_list_path? – weltschmerz
我編輯了我的答案,請閱讀導軌路由文檔 –
確定很酷,謝謝 – weltschmerz