Маршрут не совпадает при прохождении perameter Rails 3

#routes #ruby-on-rails-3

#маршруты #ruby-on-rails-3

Вопрос:

Пытаюсь получить маршрут, чтобы передать строку, которую я могу использовать в контроллере для запроса базы данных.

  controller:
 def sales
@sales= Micropost.where(:sale_name => params[:sale])
@sales = Sale.sales
 end

View:
<%= link_to('See all', :controller =>"microposts", :action => "sales", :sale => sales_item.sale_name) %>

Routes.rb
match '/sales/:sale', :to => 'microposts#sales'
  

Ответ №1:

Измените свой маршрут на match 'microposts/sales' => 'microposts#sales' , и вы сможете передать параметры этому действию.

Вы также можете сделать его именованным маршрутом, который будет выглядеть примерно так, match 'sales' => 'microposts#sales', :as => :sales . С этим вы получите sales_url и sales_path . Вы можете использовать тогда как, например., sales_path(:sale => sales_item.sale_name) .

Надеюсь, это поможет.