루비를 레일에서 학습하여 경로 및 경로 메서드로 재생합니다. "Book"및 "Author"모델을 사용하여 매우 간단한 응용 프로그램을 만들었습니다. 각 저자는 많은 책을 가질 수 있으며, 모든 책은 저자 등에 속할 수 있습니다.Ruby path_to는 명시 적 일 때만 작동합니다.
모든 저자를 나열하는 #list 메소드로 작성자 컨트롤러가 있습니다. 그렇게하면 모든 책이 울려 퍼집니다. 이제 각 책이 내가 찾은 멋진 경로 방법으로 책 # 쇼를 가리 키기를 바랍니다.
여기 내 코드 조각입니다 : 잘 작동이 link_to book.name, controller: :books, action: :show, id: book.id
으로
<% @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 %>
하지만, 뭔가 같은 훨씬 쉽게 달성 할 수있다 나에게 알려줍니다. 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)
을 작동 시키려면 어떻게해야합니까?
이 최고, 감사합니다! 한 가지 더 질문 : 어떻게 books_list_path를 받아 들일 수 있도록 라우트에서이 'match'books/list '=>'books # list''라고 말할 필요가 없었습니까? – weltschmerz
나는 나의 대답을 편집했다. 레일스 문서 –
ok를 읽어 보아라. 고마워. 고마워. – weltschmerz