Hi --
Hi --
sorry for the incomplete info. Here're the details:
#I've construct the data object in the controller: for i in 0..10 @option[i] = { :name => @params[("name"+i.to_s).to_sym], :value => @params[("value"+i.to_s).to_sym] } end
#then pass the object to model function Somemod.funct( ...some other parameters... :option => @option)
#this is the model function self.funct(input) ....... input[:option].each do |opt_k| options[opt_k] = Hash.new(0) options[opt_k] = OtherClass.new(input[:option][opt_k])
You're assigning to options[opt_k] twice, which means the first assignment will get clobbered.
end unless input[:option].nil?
#I suspect that the problem is assoc with input[:option][opt_k], which returns error when I want to put it on screen
That sounds right. input[:option] is an array, and you're trying to index it with a hash (opt_k) instead of an integer. (I'm assuming options is a hash; if it's an array, then you've got the same problem there too.)
I'm not clear on what you're trying to do in that each loop, so I'm not sure what the right code would be, but you'll need to make sure not to use a hash to index an array.
David