J'essaie de transmettre des valeurs entre des actions dans un contrôleur. Lorsque je place des valeurs dans l'action de l'expéditeur, elle renvoie une collection d'objets correctement. Mais quand je mets des valeurs à partir de l'action du récepteur, cela montre une chose différente.
j'ai rencontré ce problème quand j'ai essayé d'utiliser each
pour récupérer tous les objets de la collectionRails: Comment fonctionne la session dans cette situation?
example_controller.rb
def query
@results = Result.all
session[:results] = @results
puts session[:results]
end
def print
@receiver = session[:results]
puts @receiver
end
Résultats: 0x007fdc8b96b0a8
Résultats: 0x007fdc8b96af68
Résultats: 0x007fdc8b96adb0
Résultats : 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"}
si j'essaie @receivers.each {|r| r.e_comp}
, il affichera une erreur
NoMethodError (méthode non définie e_comp » pour Hash: 0x007fdc8b96b0a8)
Que se passe-t-il à l'intérieur des rails? pourquoi la session tourne-t-elle à un autre format?
pouvez-vous poster plus de code lié à ce problème - ce qui est dans le bloc each do? – David
@ henners66 Merci de voir le code mis à jour –