我在控制器中定义了一种新方法,只需点击一下搜索结果,即可显示我家的自定义显示页面。
houses_controller.rb
def show_house_search
@house = House.find(params[:id])
@photos = @house.photos
end
然后我在 routes.rb
中声明路线 get '/show_house_search/:id', to: 'houses#show_house_search', as:'show_house_search'
当我用它时
<%= link_to show_house_search_path(house.id),id:'house_search' do %>
<li id="house-<%= house.id %>">
<span class="user" style="font-size: 15px;font-weight: 200;text-decoration: dotted;"><%= house.title %></span>
<span class="content"style="font-size: 15px;color: purple;font-weight: 600;">Price <i class="fa fa-inr"></i><%= house.price %></span>
<span class="badge"><%= house.house_structure%></span> </span>
<span class="badge"><%= house.location%></span> </span>
</li>
<%end%>
点击此链接会显示此错误:
Routing Error
No route matches [GET] "/show_house_search.38"
我还使用 rails routes
搜索了我的请求路线 show_house_search_path GET /show_house_search/:id(.:format) houses#show_house_search
答案 0 :(得分:1)
请改变menthod
show_house_search_path(house.id)
到
show_house_search_path(id: house.id).
如routes.rb中所示,路径为/show_house_search/:id(.:format)
,似乎id
被视为:format
,因此将路由附加为(.id)。
答案 1 :(得分:1)
try below code:
<%= link_to show_house_search_path(id: house.id) ,id:'house_search' do %>