我有一个名单,包含:
<td><%= product.date %></td>
它在我的索引页面中。 (这是我的申请表)
我想为其分配一个自定义链接,并将THAT值传递给控制器: 我试过这个:
<td><%= link_to product.date, {:controller => "product", :action => "sort_by_date", <how do I pass the 'product.date' string?> }%></td>
我阅读了rails路线指南,但我找不到帮助
由于
rakes路线的回报:
products GET /products(.:format) products#index
POST /products(.:format) products#create
new_product GET /products/new(.:format) products#new
edit_product GET /products/:id/edit(.:format) products#edit
product GET /products/:id(.:format) products#show
PUT /products/:id(.:format) products#update
DELETE /products/:id(.:format) products#destroy
root /
products#home.html
答案 0 :(得分:4)
使用如下
<%= link_to product.date, {:controller => "product", :action => "sort_by_date", :product_date => product.date %>
在您的控制器中,您应该在params[:product_date]
您还可以使用资源帮助程序功能传递自定义参数,如下所示。
<%= link_to product.date, products_path(:product_date => product.date)
此方法将使用ProductsController#index
params[:product_date]
修改强>
我刚试过以下
resources :products do
collection do
get 'sort_by_date' => 'products#sort_by_date'
end
end
佣金路线如下
sort_by_date_products GET /products/sort_by_date(.:format) products#sort_by_date
要生成URL,最好使用资源助手函数,如下所示
sort_by_date_products_path(:product_date => '1/1/2012')
这会生成一个类似/product/sort_by_date?product_date=1/1/2012
的网址,该网址会调用sort_by_date
的{{1}}方法并且ProductsController
可用。
让我们检查一下它的工作......