我正在Rails(3.2.11)上的Ruby(1.9.3)中的航班跟蹤應用程序。此應用程序有一個Flight
班級,其中包括一個字符串列tail_number
,用於跟蹤執行飛行的飛機的tail number。Rails link_to非字符串參數非足跡路由
我試圖爲尾號創建一個索引視圖,顯示尾號和每個號的列表,並鏈接到一個視圖,該視圖將顯示所有具有該尾號的Flights
。 我有展示頁面的工作,但我在索引頁上工作link_to
時遇到麻煩。
顯示視圖由flights
控制器的show_tail
行動,我已經在routes.rb中設置了處理:
match '/tails' => 'flights#index_tails'
match '/tails/:tail_number' => 'flights#show_tail'
飛行控制組由尾號航班,並提供一個計數:
def index_tails
@flight_tail_numbers = Flight.where("tail_number IS NOT NULL").group("tail_number").count
end
在我的尾號爲索引頁(/app/views/flights/index_tails.html.erb),我創建了尾號的表和每個計,打算有尾號鏈接到相應的顯示視圖:
<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>
然而,代替link_to
創造一個像我希望/萬尾/ tail_number的鏈接(例如,/tails/N909EV
),它,而不是創建一個鏈接到/tails.tail_number(/tails.N909EV
)。這個鏈接顯然不會把我送到我想要的航班#show_tail。
我已經成功地創建了與飛行(機場,旅程)和航班本身相關聯的其他模型的索引,並且它們都通過使用例如我嘗試使用的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
問題,所以我恢復爲上面列出的內容。
我應該如何格式化我的link_to以使其工作?
工作完美,謝謝。出於某種原因,我嘗試重命名路線並鏈接到該路線,但從未想過向其添加'_path'。 – bogardpd 2013-03-08 04:24:04