【发布时间】:2016-10-25 21:21:53
【问题描述】:
我正在尝试在控制器中的操作之间传递值。
当我将值放入发送者操作时,它会正确返回对象集合。但是当我从接收器操作中输入值时,它会显示不同的东西。
当我尝试使用each 从集合中检索每个对象时遇到了这个问题
example_controller.rb
def query
@results = Result.all
session[:results] = @results
puts session[:results]
end
def print
@receiver = session[:results]
puts @receiver
end
结果:0x007fdc8b96b0a8
结果:0x007fdc8b96af68
结果:0x007fdc8b96adb0
结果:0x007fdc8b96ac70{"id"=>9, "e_comp"=>"109", "e_num"=>"ccc"}
{"id"=>11, "e_comp"=>"111", "e_num"=>"bbb"}
{"id"=>12, "e_comp"=>"112", "e_num"=>"ddd"}
{"id"=>15, "e_comp"=>"115", "e_num"=>"kkk"}
如果我尝试@receivers.each {|r| r.e_comp},它会显示错误
NoMethodError(哈希的未定义方法“e_comp”:0x007fdc8b96b0a8)
rails 内部会发生什么?为什么会话转换为另一种格式?
【问题讨论】:
-
您能否发布更多与此问题相关的代码 - 每个 do 块中有什么?
-
@henners66 感谢看到更新的代码
标签: ruby-on-rails ruby session