2012-06-25 172 views
4

我是RoR初學者,正在使用Rails 3.2.3。Ruby on Rails - 將值傳遞給link_to

我的頁面上有一個搜索表單,它執行一個get請求並正確過濾結果。

我想添加也按日期搜索產品的可能性。 我插入了一個date_select,並且能夠選擇日期和搜索後頁面刷新的時間,所選日期仍然存在於date_select上,因爲我可以通過params獲取它們。

但是,我的問題是,當頁面呈現產品時,他們有一個link_to他們的show動作。 我的目標是同時傳遞選定的日期以在link_to上執行搜索。

對於離,如果用戶選擇的20-06-2012的日期25-06-2012它只示出了插入該時間幀上的產品(和所有那些PARAMS都在URL)

但鏈接顯示顯示的每個動作品只:

link_to <%= link_to product.name, product%> 

這使得

http://localhost:3000/products/24(POR例子)

我想渲染/笑什麼w是這樣的:

http://localhost:3000/products/24?from=20-06-2012&to=25-06-2012 

選定的日期進行搜索並不存儲在此時數據庫,但我會需要從URL得到他們後一頁上,因此,這兩個日期都需要在用戶填寫表單之前通過2個不同頁面進行保存,然後將這些日期插入到數據庫中。

對此有任何提示?我搜索了,但我發現的是如何傳遞模型中存在的變量,我不想使用cookie或會話變量。

由於提前, 問候

回答

6

如果你想任意參數傳遞給下面的調用

<%= link_to product.name, product %> 

你需要顯式調用路徑方法而不是使用隱式版本。上面的線是相當於

<%= link_to product.name, product_path(product) %> 

那麼你可以傳遞參數

<%= link_to product.name, product_path(product, :from => 'whatever', :to => 'whatever') %> 
+0

謝謝你的回答g如此之快,您的解決方案符合我的需求,標記爲已接受。 – Silver

3

你可以嘗試這樣的

link_to <%= link_to product.name, product, :param_you_want => "value you want" %> 

現在你可以在 「param_you_want」 設置值,如你所願。

但在它我的情況設定值「的值要」

希望你能得到的想法

+0

我想它不會渲染'在它的面前也沒有的了'「你要價值」鏈接加載時顯示頁面在它的參數中(我檢查了使用'params',它只有這個:'{「action」=>「show」,「controller」=>「products」,「id」=>「24 「}'。任何提示? – Silver

+0

@ali與你的例子參數作爲'html_options'傳遞給鏈接幫助器,而不是路徑參數。請參閱http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html #method-i-link_to –

相關問題