#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)
.
Надеюсь, это поможет.