2012-12-17 99 views
1

嘿guyz我想從視圖傳遞一個值與will_paginate並希望在控制器中作爲params [:user] [:id]來訪問這個值。我將如何做到這一點?傳遞有價值從視圖到控制器在rails

+0

你能解釋一下多一點,你在做什麼?您無法將視圖中的值傳遞給控制器​​,首先執行控制器,然後渲染視圖。但是,您可以在提交表單後在視圖中設置參數(如表單參數),該參數將由控制器處理。 – rorra

+0

@rorra你我知道。但是因爲我在rails中使用了will_paginate插件,所以需要傳遞一些變量,以便控制器可以完成處理。 –

+0

但是當你使用will_paginate,並且你點擊任何頁面鏈接時,它應該通過param **頁面**,所以你會看到類似於** http://mywebsite.com/my_resources?page = 3 **的內容。如果偶然做了任何其他操作(如表單提交),只需添加隱藏字段**頁面**,如** <%= hidden_​​field_tag'頁面',params [:page]%>。什麼是你的問題,你需要從視圖傳遞到控制器,以及你想存檔的行爲是什麼? – rorra

回答

0

好了,你想做的事:

<%= will_paginate @user_rep, params: { start_date: @start_date, end_date: @end_date, user: @user.attributes.to_hash } %> 

,或者如果你想通過做手工

<%= will_paginate @user_rep, params: { start_date: @start_date, end_date: @end_date, user: { id: @user_id } } %> 
+0

在第二個聲明中,我可以訪問第三個參數爲params [:user] [:id] ? –

+0

從控制器,是的,你將能夠做** params [:user] **這將返回一個散列,並且唯一的項目有** ** id **,所以** params [:user] [ :id] **會給你用戶ID。在第一條語句中,您只是將所有數據傳遞給用戶。您也可以傳遞用戶標識,例如** <%= will_paginate @user_rep,user_id:user.id%> **,然後在剛纔訪問的控制器上傳遞** params [:user_id] ** – rorra

相關問題