我正在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