我的表格公司,字段 city_id 。我需要按城市分类公司。我接下来做了:
# 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中)?
答案 0 :(得分:1)
您可以使用as
选项为路线命名:
例如:
get '/companies/city/:city_id', to: 'companies#sort_by_city', as: 'companies_city_sort'
然后使用
companies_city_sort_path
另外,看看resourceful routing,可能会更适应。
答案 1 :(得分:0)
如果在终端中键入rake routes
,则可以找到当前路径的名称。
只需查看列出companies#sort_by_city
的行。