得到无路线匹配[GET]" /show_house_search.38"在rails

时间:2017-04-25 09:41:57

标签: ruby-on-rails rails-routing

我在控制器中定义了一种新方法,只需点击一下搜索结果,即可显示我家的自定义显示页面。

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

2 个答案:

答案 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 %>