0

私はこれを含む名前のリストを持っています:

<td><%= product.date %></td>

そしてそれは私のインデックスページにあります。(私のアプリケーションのリストです)

それにカスタムリンクを割り当て、その値をコントローラーに渡したい:これを試した:

<td><%= link_to product.date, {:controller => "product", :action => "sort_by_date", <how do I pass the 'product.date' string?>  }%></td>

レールルートガイドを読みましたが、助けが見つかりませんでした

ありがとう

レーキルートが返すもの:

    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
4

1 に答える 1

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#indexparams[: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呼び出すようなURLが生成され、使用可能になります。sort_by_dateProductsControllerparams[:product_date]

その動作を確認しましょう...

于 2012-08-24T11:08:25.190 に答える