나는 Rails (3.2.11)의 루비 (1.9.3)에서 비행 추적 어플리케이션을 연구 중이다. 이 응용 프로그램에는 비행을 수행 한 비행기의 tail number을 추적하기위한 문자열 열 tail_number
이 포함 된 Flight
클래스가 있습니다.레일즈 link_to String-with Non-Resourceful Route 파라미터
꼬리 번호에 대한 색인보기를 생성하고 각 꼬리 번호 및 개수를 표시하고 해당 꼬리 번호를 가진 Flights
을 모두 표시하는보기에 연결하려고합니다. 표시 페이지가 작동하지만 색인 페이지에서 link_to
작업을하는 데 문제가 있습니다.
쇼보기 내가 routes.rb에서 설정 한 flights
컨트롤러의 show_tail
행동에 의해 처리됩니다 테일 번호로
match '/tails' => 'flights#index_tails'
match '/tails/:tail_number' => 'flights#show_tail'
비행 컨트롤러 그룹에게 항공편과 수를 제공
내 꼬리 숫자 인덱스 페이지 (/app/views/flights/index_tails.html.erb)에def index_tails
@flight_tail_numbers = Flight.where("tail_number IS NOT NULL").group("tail_number").count
end
, 나는 적절한에 꼬리 번호 링크를하려는, 꼬리 숫자의 테이블과 각각의 수를 만들 쇼보기 :
<h1>Tail Numbers</h1>
<table>
<% @flight_tail_numbers.each do |tail_number, count| %>
<tr>
<td><%= link_to(tail_number, tails_path(tail_number)) %></td>
<td><%= count %>
</tr>
<% end %>
</table>
그러나, 대신 내가 바라고 있어요 같은 (예를 들어, /tails/N909EV
)/꼬리/tail_number에 대한 링크를 만드는 link_to
의, 대신 (/tails.N909EV
를) /tails.tail_number에 대한 링크를 작성합니다. 이 링크는 내가 원하는 항공편 # show_tail으로 나를 보내지 않습니다.
Flight (공항, 여행) 및 Flight 자체의 인덱스와 관련된 다른 모델의 인덱스를 성공적으로 만들었으며, 모두 예를 들어 link_to trip.name, trip_path(trip)
구문을 사용하여 작동합니다. 꼬리 숫자. 따라서 Tail_Number가 모델이고 동일한 방식으로 처리 할 수 있다면 매우 사소할 것입니다. 그러나 주어진 비행의 속성 대 모델이되는 것은 너무 사소한 것처럼 보입니다. 내가 나를 위해 작동하지 않는 이유를 믿고있어
내가 trip_path(trip)
를 사용하여있을 때, trip
는 tails_path(tail_number)
에, tail_number
문자열 반면 객체 것입니다. 하지만 정확히 어떻게 링크해야하는지 잘 모르겠습니다. 나는 Rails link_to action with URL parameters에있는 명명 된 경로와 같은 솔루션을 시도했지만, 내가 그렇게한다면 동일한 undefined method
문제가 발생하므로 위의 목록으로 되돌아갔습니다.
이 작업을하려면 내 링크를 어떻게 포맷해야합니까?
완벽하게 작동했습니다. 감사합니다. 웬일인지, 나는 길의 이름을 바꾸고 그것과 연결을 시도했지만 결코 그것에'_path'를 추가 할 생각은 없었다. – bogardpd