Hey
I need some help with pagination and the link_to in the view.
I’m trying to include a hash in the pagination link_to params and it
keeps flattening out my hash.
Example:
Here’s my hash called @answer:
“answer”=>{“6”=>“9bf31c7ff062936a96d3c8bd1f8f2ff3”,
“7”=>“6f4922f45568161a8cdf4ad2299f6d23”}
Here’s the code in my view for my pagination link:
<%= link_to(‘next’, {:params => params.merge(‘answer’ => @answer,
‘page’ => object_pages.current.previous,)}) + ’ ’ if
object_pages.current.previous %>
See how the link_to doesn’t maintain the actual hash:
next
Anyone know how I can pass a hash intact through a link_to ?
Thanks a ton!
Chris
On Jun 7, 2006, at 3:55 AM, chris landry wrote:
"7"=>"6f4922f45568161a8cdf4ad2299f6d23"}
d23&page=2">next
http://lists.rubyonrails.org/mailman/listinfo/rails
Hey Chris-
To get a hash through in an url like that you need to serialize it
and deserialize it. Something like this:
#in your application controller somewhere:
require ‘base64’
def construct_for_link(object)
Base64.encode64(Marshal.dump(object))
end
helper_method : construct_for_link
def deconstruct_from_link(object)
Marshal.load(Base64.decode64(object))
end
helper_method :deconstruct_from_link
then in your view
<%= link_to(‘next’, {:params => params.merge(‘answer’ =>
construct_for_link(@answer),
‘page’ => object_pages.current.previous,)}) + ’ ’ if
object_pages.current.previous %>
in controller
answer = deconstruct_from_link(params[:answer])
Cheers-
-Ezra
On 7-jun-2006, at 19:02, Ezra Z. wrote:
Example:
<a href="/student_portal/evaluate_exam/7?commit=Submit+Test&
answer=69bf31c7ff062936a96d3c8bd1f8f2ff376f4922f45568161a8cdf4ad2299f
6d23&page=2">next
Anyone know how I can pass a hash intact through a link_to ?
or just http://dev.rubyonrails.org/ticket/4947
–
Julian ‘Julik’ Tarkhanov
please send all personal mail to
me at julik.nl