用于排序过滤器的Rails URL帮助程序

时间:2014-04-04 12:22:50

标签: ruby-on-rails sorting ruby-on-rails-4 view-helpers

我的表格公司,字段 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中)?

2 个答案:

答案 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的行。