2014-04-04 2 views
0

테이블 city_id 필드를 가진 회사가 있습니다. 도시별로 회사를 분류해야합니다.레일 정렬 필터를위한 URL 도우미

# companies_controller.rb 
def sort_by_city 
    @cities = City.joins(:company).uniq 
    @companies = Company.where("city_id = ?", params[:city_id]) 
    render 'index' 
end 

# routes.rb: 
get '/companies/city/:city_id', to: 'companies#sort_by_city' 

및 index.html.erb에 나는이 필터에 대한 링크를 만들려고 : 나는 다음에 무엇을

<% @cities.each do |city| %> 
    <li><%= link_to city.name, UNKNOWN_path(city.id) %> (<%= city.companies_count %>) 
<% end %> 

내가 이런 링크를 원하는 : "www.site.com/companies/city/23 " UNKNOWN_path 대신 작성해야하는 내용은 무엇입니까? 아니면 (컨트롤러 또는 routes.rb에서) 전에 뭔가 잘못 했습니까?

당신은 as 옵션으로 경로에 이름을 줄 수

답변

1

: 예를 들어

: 또한

companies_city_sort_path 

을 사용하여 다음

get '/companies/city/:city_id', to: 'companies#sort_by_city', as: 'companies_city_sort' 

그리고이 resourceful routing에서 봐 가지고, 그것을 더 적응 될 수 있습니다.

+0

대단히 감사합니다! 나는 오늘 "Resource Routing"을 3 번 이상 읽었습니다. 하지만 난 진짜 레일에 멍청한 놈이야. 도와 주셔서 감사합니다! – TheDobriy

0

터미널에 rake routes을 입력하면 현재 경로의 이름을 찾을 수 있습니다.

companies#sort_by_city이 나열된 라인을 찾으십시오.

+0

'회사 # sort_by_city'을 보았습니다. 그러나이 줄 왼쪽의 – TheDobriy

+0

에이 지식을 사용하는 방법을 모르겠습니다. 지정된 경로가 있습니다. – crispychicken

+0

'GET /companies/city/:city_id(.:format) companies # sort_by_city' – TheDobriy