2012-12-17 4 views
1

안녕하세요 guyz will_paginate를 사용하여보기에서 값을 전달하려고하고 컨트롤러에서이 값을 params [: user] [: id]로 액세스하려고합니다. 나는 그것을 어떻게 할 것인가?전달에서보기에서 컨트롤러까지 값이 있음

+0

당신은 당신이 무엇을하고 있는지 더 조금 설명 할 수 있습니까? 뷰에서 컨트롤러로 값을 전달할 수 없습니다. 먼저 컨트롤러가 실행 된 다음 뷰가 렌더링됩니다. 그러나 폼이 제출되면 컨트롤러가 처리 할 뷰 (폼 매개 변수와 같은)에 매개 변수를 설정할 수 있습니다. – rorra

+0

@rorra ya 나는 그것을 안다. 하지만 레일에서 will_paginate 플러그인을 사용하고 있기 때문에 컨트롤러 처리가 가능하도록 일부 변수를 전달해야합니다. –

+0

하지만 will_paginate를 사용하고 페이지 링크를 클릭하면 매개 변수 ** 페이지 **가 전달되어 ** http : //mywebsite.com/my_resources? page = 3 **와 같은 내용이 표시됩니다. 우연히 양식 제출과 같은 다른 작업을 수행하는 경우 ** <% = hidden_field_tag ​​'페이지', params [: page] %>와 같이 숨겨진 필드 ** 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

에서 액세스 할 수있는 form_tag의 값을가집니다. 두 번째 명령문에서 세 번째 매개 변수를 params [: user] [: id]로 액세스 할 수 있습니까? ? –

+0

컨트롤러에서, 네, 해시를 반환하는 ** params [: user] **를 수행 할 수 있으며 유일한 항목에는 ** id ** 키가 있으므로 ** params [: user] [ : id] **는 사용자 ID를 제공합니다. 첫 번째 문장에서 사용자의 모든 데이터를 전달하는 것입니다. ** <% = will_paginate @user_rep, user_id : user.id %> **와 같은 사용자 ID를 전달한 다음 방금 액세스 한 컨트롤러에서 ** params [: user_id] **를 전달할 수도 있습니다. – rorra