0

關於Ruby對象傳遞迴從視圖中我嘗試這樣做:在軌道

th = link_to "ID", results_path(sort: "id", search_form: @search_form) 

到實例@search_form回到控制器「結果」,而是返回nil變量,但我必須指出的是,以這種方式在控制器上訪問的排序變量params[:sort]具有正確的值,所以路徑起作用。

所以現在我有自己的返回的每一個屬性,這是工作

th = link_to "ID", 
         :sort => "id", 
         :verweildauer => @search_form.verweildauer, 
         :datenjahr => @search_form.datenjahr, 
         :drgsystem => @search_form.drgsystem, 
         :greatersmallerequal => @search_form.greatersmallerequal, 
         :patients_per_page => @search_form.patients_per_page 

然後我要重建控制器訪問的每一個屬性上的對象的解決方案。

如何直接將@search_form傳遞到控制器?

+0

Link_to喜歡去打個電話,除非你另有告知。檢查出http://stackoverflow.com/questions/13414663/using-rails-link-to-for-links-that-post – dbugger

+0

@dbugger仍然不工作我試着用:'th = link_to「ID」,resultsPost_path(param1 :「@search_form」),method::post'在視圖和'post'/ results'上,對:routes.rb文件中的'results#results',:as =>:resultsPost'。字符串參數被傳入,但對象本身不被傳遞。是否有一種奇怪的方式來訪問它從控制器或我可以像這樣''params [:param1]''訪問它,因爲我甚至沒有看到調試器上的param1參數... – Mattia

回答

0

如果我正確理解你要傳遞許多過濾參數到get/link_to。由於獲取請求查詢大小限制,這是一個糟糕的主意。你應該在這裏使用表單標籤並將所有的參數移動到隱藏的字段中。這是正確的方法。

+0

我可以移動整個實例' @ search_form'而不是分別訪問每個屬性? – Mattia

+0

如果您的@search_form是Hash類的一個實例,我想在整個實例中傳遞參數 – Mattia

+0

'link_to'ID',results_path(@ search_form.merge({sort:'id'}))''。它將使用它們的所有鍵/值,但如果它不是 - 你不能發送ruby對象數據到URL,你應該把它轉換成散列值。 – AlexeyKuznetsov