我目前有一个搜索列表数据库的页面。点击选择后,视图会链接到该列表的显示页面:
<div class="listings_wrapper">
<% @listings.each do |listing| %>
<%= link_to listing_url(listing), class: "listing_link" do %>
<div class="listing">
<div class="picture">
<% if listing.thumbnail != nil %>
<%= image_tag(listing.thumbnail, class: "list_image") %>
<% end %>
</div>
当前路由为:
的节目页面 get 'listings/:listing_id', to: 'listings#show', as: 'listing'
将获取地址
localhost3000/listing/612983618 (arbitrary id)
我尝试做的是获取路径以显示路径中数据库的信息,而不是用于搜索引擎优化:
localhost3000/listing/[address]/[booking_id]
当我尝试调整到
时 get 'listings/:listing_id', to: 'listings#show', as: 'listing/:address/:booking_id'
我在加载时被阻止了。我一直在寻找类似答案的stackoverflow,但尚未解决这个问题。由于链接正在拉动对象本身,并且路径正在从中拉出id,因此引用地址键是有意义的,但显然缺少某些东西。帮助
答案 0 :(得分:1)
为了使<a target='_blank' href='/code/some_file.cpp'>
的URI能够接收对象的地址和booking_id,您可以将路径定义中的别名移动到uri参数,例如:
listings#show
现在它将等待这两个属性。在控制器中,如果要从两个发送的属性中找到该特定对象,则可以使用find_by
:
get 'listing/:address/:booking_id', to: 'listings#show'
注意这会有效,但是如果你有多个记录具有相同的地址和booking_id,find_by将只返回第一个记录。