Hello,
I have a postgresql join query that returns all the correct values on
command line but when I try to loop through the results in a view, I
can’t
access all the fields.
Specifically, I’m trying to display the fields in the rations table and
can’t seem to print them out to save my life.
Here’s the query:
@herd_rations_during_season = HerdRation.find(:all,
:joins => ["INNER JOIN seasons ON seasons.herd_id =
herd_rations.herd_id AND seasons.season_start_date >=
herd_rations.grazing_begun AND herd_rations.grazing_end <=
seasons.season_end_date INNER JOIN rations ON rations.id =
herd_rations.ration_id"],
:select=>'DISTINCT ON (herd_rations.id) herd_rations.id,
herd_rations.grazing_begun, herd_rations.grazing_end,
seasons.season_name,
seasons.season_start_date, seasons.season_end_date,
rations.ration_name',
:conditions => ["herd_rations.herd_id=?", params[:id]])
@herd_rations_during_season.each do |herd_ration|
puts("----herd_ration: #{herd_ration.ration}") #prints nil
puts("----grazing_begun: #{herd_ration.grazing_begun}") #good
puts("---- grazing_end: #{herd_ration.grazing_end}") #good
end
Thanks for any help!
View this message in context:
http://old.nabble.com/looping-through-results-of-complex-query-tp31951568p31951568.html
Sent from the RubyOnRails Users mailing list archive at Nabble.com.
Probably because in your select clause, you aren’t selecting
herd_rations.ration
solved the problem and feel a bit stupid but, at the same time not.
I accessed ration.ration_name by simply doing this in my loop:
herd_ration.ration_name
The part I’m not understanding, is that when I used inspect in the loop,
it
did not display any reference to to ration.ration_name:
@herd_rations_during_season.each do |herd_ration|
puts("----herd_ration: #{herd_ration.inspect}") #doesn't display
ration_name anywhere
end
Chirag S. wrote:
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.
–
View this message in context:
http://old.nabble.com/looping-through-results-of-complex-query-tp31951568p32028220.html
Sent from the RubyOnRails Users mailing list archive at Nabble.com.
On Jul 9, 5:41pm, clem_c_rock [email protected] wrote:
solved the problem and feel a bit stupid but, at the same time not.
I accessed ration.ration_name by simply doing this in my loop:
herd_ration.ration_name
The part I’m not understanding, is that when I used inspect in the loop, it
did not display any reference to to ration.ration_name:
inspect by design only shows columns from the model’s table, no matter
what other stuff you may have put in the select clause
Fred
appreciate your reply Fred - you are always a great help!
Frederick C.-2 wrote:
[/code]
[code]
https://groups.google.com/d/msg/rubyonrails-talk/-/xlhlA_zkL10J.
–
View this message in context:
http://old.nabble.com/looping-through-results-of-complex-query-tp31951568p32028336.html
Sent from the RubyOnRails Users mailing list archive at Nabble.com.
For anyone that’s interested … You can inspect the model’s
current attributes to see that additional data that was added in your
custom query:
…
puts("----herd_ration: #{herd_ration.attributes.inspect}")
…
Jeff