Hi, I have a hash and i need to pass it to a function in another
controller. Here’s what I have to do that
<%= link_to ‘View’, :controller => :attempts, :action => :show_cbam, :id
=> a.code, :percentiles =>@percentile_hash%>
where @percentile_hash is the hash I have. Then I call it in the other
controller like this
def show_cbam
@percentiles = params[:percentiles]
This seems to work ok, i can see the hash in my view but it doesnt work
properly.
Here’s an example of my hash
@percentiles = {1=>[88,99,100]}
When i call @percentiles it outputs 18899100 so it seems fine but when i
call @percentiles[1] it returns 54. I have no idea why, it should return
the array [88,99,100]. Furthermore, for values like @percentiles[2]
it’ll return like 55 even though there is no value associated with 2.
does anyone understand why this is happening? thank you
h = {1=>[88, 99, 100]}
def show(a_hash)
puts a_hash[1]
end
show(h)
–output:–
88
99
100
7stud – wrote:
h = {1=>[88, 99, 100]}
def show(a_hash)
puts a_hash[1]
end
show(h)
–output:–
88
99
100
yeah, im not doing standard ruby like that, I’m doing it through html so
I think it’s getting screwed up in that process. I’m just going to
calculate the hash in the other controller instead and try that.
Mark Mr wrote:
yeah, im not doing standard ruby like that
Then why would you post your question in a standard ruby forum?
On Thu, Feb 14, 2008 at 1:32 PM, Mark Mr [email protected] wrote:
the array [88,99,100]. Furthermore, for values like @percentiles[2]
it’ll return like 55 even though there is no value associated with 2.
does anyone understand why this is happening? thank you
Are you sure those are the EXACT numbers you are getting? Because it
sounds like you might be getting the string “18899100” rather than the
hash, which would give numbers close to that but not exactly. E.g.:
irb(main):004:0> “18899100”[1]
=> 56
irb(main):005:0> “18899100”[2]
=> 56
irb(main):006:0> “18899100”[3]
=> 57
irb(main):007:0> “18899100”[0]
=> 49