So, I''m just trying to understand the console a bit better :) I''m able to get some decent output through the console, but it''s a bit short of what I want, which is to put the "calls" array together with the "logins" array and output the results as the SQL below does, something like: calls.comment calls.created_at logins.login ===================================================start work 2008-02-08 15:12:13 0123 start call 2008-02-08 15:12:13 0123 start break 2008-02-08 15:12:13 0123 How do you put it all together from the console? I can print out the first two columns together, or print the third column, but cannot put them together :( thufir@arrakis ~/goodfellow-tool $ thufir@arrakis ~/goodfellow-tool $ script/console Loading development environment.>> calls=Call.find(:all, :conditions => {:login_id => 1})=> [#<Call:0xb70747b8 @attributes={"id"=>"1", "comment"=>"start work", "login_id"=>"1", "created_at"=>"2008-02-08 15:12:13"}>, #<Call:0xb707477c @attributes={"id"=>"2", "comment"=>"start call", "login_id"=>"1", "created_at"=>"2008-02-08 15:12:13"}>, #<Call:0xb7074754 @attributes{"id"=>"3", "comment"=>"start break", "login_id"=>"1", "created_at"=>"2008-02-08 15:12:13"}>]>> calls.each {|call| puts call.comment + "\t" + call.created_at.to_s}start work Fri Feb 08 15:12:13 -0800 2008 start call Fri Feb 08 15:12:13 -0800 2008 start break Fri Feb 08 15:12:13 -0800 2008 => [#<Call:0xb70747b8 @attributes={"id"=>"1", "comment"=>"start work", "login_id"=>"1", "created_at"=>"2008-02-08 15:12:13"}>, #<Call:0xb707477c @attributes={"id"=>"2", "comment"=>"start call", "login_id"=>"1", "created_at"=>"2008-02-08 15:12:13"}>, #<Call:0xb7074754 @attributes{"id"=>"3", "comment"=>"start break", "login_id"=>"1", "created_at"=>"2008-02-08 15:12:13"}>]>> Login.find :all=> [#<Login:0xb705c58c @attributes={"id"=>"1", "employee_id"=>"1", "login"=>"0123"}>, #<Login:0xb705c550 @attributes={"id"=>"2", "employee_id"=>"1", "login"=>"1234"}>, #<Login:0xb705c528 @attributes{"id"=>"3", "employee_id"=>"2", "login"=>"2345"}>]>> logins=Login.find(:all, :conditions => {:login => "0123"})=> [#<Login:0xb7057190 @attributes={"id"=>"1", "employee_id"=>"1", "login"=>"0123"}>]>> logins.each {|login| puts login.login}0123 => [#<Login:0xb7057190 @attributes={"id"=>"1", "employee_id"=>"1", "login"=>"0123"}>]>> quitthufir@arrakis ~/goodfellow-tool $ thufir@arrakis ~/goodfellow-tool $ sqlite3 db/development.sqlite3 SQLite version 3.4.1 Enter ".help" for instructions sqlite> SELECT calls.comment,calls.created_at,logins.login FROM calls,logins WHERE calls.login_id=1 AND logins.id=1; start work|2008-02-08 15:12:13|0123 start call|2008-02-08 15:12:13|0123 start break|2008-02-08 15:12:13|0123 sqlite> .quit thufir@arrakis ~/goodfellow-tool $ --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
ESPNDev-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
2008-Feb-09 05:29 UTC
Re: querying multiple tables from the console
If the relationships are in place...
calls=Call.find(:all, :conditions => {:login_id => 1},:include
=> :logins)
calls.each {|call| puts call.comment + "\t" + call.created_at.to_s +
"\t" + call.login.to_s}
w/o knowing more about the schema, that''s all i can really help with
On Feb 8, 9:09 pm, Thufir
<hawat.thu...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:> So, I''m just trying to understand the console a bit better :)
>
> I''m able to get some decent output through the console, but
it''s a bit
> short of what I want, which is to put the "calls" array together
with the
> "logins" array and output the results as the SQL below does,
something
> like:
>
> calls.comment calls.created_at logins.login
> ===================================================> start work
2008-02-08 15:12:13 0123
> start call 2008-02-08 15:12:13 0123
> start break 2008-02-08 15:12:13 0123
>
> How do you put it all together from the console? I can print out the
> first two columns together, or print the third column, but cannot put
> them together :(
>
> thufir@arrakis ~/goodfellow-tool $
> thufir@arrakis ~/goodfellow-tool $ script/console
> Loading development environment.>> calls=Call.find(:all, :conditions
=> {:login_id => 1})
>
> => [#<Call:0xb70747b8 @attributes={"id"=>"1",
"comment"=>"start work",
> "login_id"=>"1",
"created_at"=>"2008-02-08 15:12:13"}>,
#<Call:0xb707477c
> @attributes={"id"=>"2",
"comment"=>"start call",
"login_id"=>"1",
> "created_at"=>"2008-02-08 15:12:13"}>,
#<Call:0xb7074754 @attributes> {"id"=>"3",
"comment"=>"start break",
"login_id"=>"1",
> "created_at"=>"2008-02-08 15:12:13"}>]>>
calls.each {|call| puts call.comment + "\t" + call.created_at.to_s}
>
> start work Fri Feb 08 15:12:13 -0800 2008
> start call Fri Feb 08 15:12:13 -0800 2008
> start break Fri Feb 08 15:12:13 -0800 2008
> => [#<Call:0xb70747b8 @attributes={"id"=>"1",
"comment"=>"start work",
> "login_id"=>"1",
"created_at"=>"2008-02-08 15:12:13"}>,
#<Call:0xb707477c
> @attributes={"id"=>"2",
"comment"=>"start call",
"login_id"=>"1",
> "created_at"=>"2008-02-08 15:12:13"}>,
#<Call:0xb7074754 @attributes> {"id"=>"3",
"comment"=>"start break",
"login_id"=>"1",
> "created_at"=>"2008-02-08 15:12:13"}>]>>
Login.find :all
>
> => [#<Login:0xb705c58c @attributes={"id"=>"1",
"employee_id"=>"1",
> "login"=>"0123"}>, #<Login:0xb705c550
@attributes={"id"=>"2",
> "employee_id"=>"1",
"login"=>"1234"}>, #<Login:0xb705c528
@attributes> {"id"=>"3",
"employee_id"=>"2",
"login"=>"2345"}>]>> logins=Login.find(:all,
:conditions => {:login => "0123"})
>
> => [#<Login:0xb7057190 @attributes={"id"=>"1",
"employee_id"=>"1",
> "login"=>"0123"}>]>> logins.each {|login|
puts login.login}
>
> 0123
> => [#<Login:0xb7057190 @attributes={"id"=>"1",
"employee_id"=>"1",
> "login"=>"0123"}>]>> quit
>
> thufir@arrakis ~/goodfellow-tool $
> thufir@arrakis ~/goodfellow-tool $ sqlite3 db/development.sqlite3
> SQLite version 3.4.1
> Enter ".help" for instructions
> sqlite> SELECT calls.comment,calls.created_at,logins.login FROM
> calls,logins WHERE calls.login_id=1 AND logins.id=1;
> start work|2008-02-08 15:12:13|0123
> start call|2008-02-08 15:12:13|0123
> start break|2008-02-08 15:12:13|0123
> sqlite> .quit
> thufir@arrakis ~/goodfellow-tool $
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
On Fri, 08 Feb 2008 21:29:33 -0800, ESPNDev-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org wrote:> If the relationships are in place... > calls=Call.find(:all, :conditions => {:login_id => 1},:include => > :logins) > calls.each {|call| puts call.comment + "\t" + call.created_at.to_s + > "\t" + call.login.to_s} > > w/o knowing more about the schema, that''s all i can really help withI believe that the relationships are in place and that the schema is compatible: thufir@arrakis ~/goodfellow-tool $ thufir@arrakis ~/goodfellow-tool $ script/console Loading development environment.>> calls=Call.find(:all, :conditions => {:login_id => 1},:include=> :logins) ActiveRecord::ConfigurationError: Association named ''logins'' was not found; perhaps you misspelled it? from /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/ active_record/associations.rb:1351:in `build'' from /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/ active_record/associations.rb:1356:in `build'' from /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/ active_record/associations.rb:1355:in `each'' from /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/ active_record/associations.rb:1355:in `build'' from /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/ active_record/associations.rb:1319:in `initialize'' from /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/ active_record/associations.rb:1037:in `new'' from /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/ active_record/associations.rb:1037:in `find_with_associations'' from /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/ active_record/associations.rb:1036:in `catch'' from /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/ active_record/associations.rb:1036:in `find_with_associations'' from /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/ active_record/base.rb:996:in `find_every'' from /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.5/lib/ active_record/base.rb:418:in `find'' from (irb):1>> quitthufir@arrakis ~/goodfellow-tool $ thufir@arrakis ~/goodfellow-tool $ cat app/models/call.rb class Call < ActiveRecord::Base belongs_to :login def report Call.find(:all, :include => [:logins, :login]) end end thufir@arrakis ~/goodfellow-tool $ thufir@arrakis ~/goodfellow-tool $ cat app/models/login.rb class Login < ActiveRecord::Base belongs_to :employee has_many :call end thufir@arrakis ~/goodfellow-tool $ thufir@arrakis ~/goodfellow-tool $ cat db/migrate/001_calls.rb class Calls < ActiveRecord::Migration def self.up create_table "calls" do |call| call.column "login_id", :string call.column "created_at", :datetime call.column "comment", :string end Call.create :login_id => "1", :comment => "start work" Call.create :login_id => "1", :comment => "start call" Call.create :login_id => "1", :comment => "start break" Call.create :login_id => "2", :comment => "start work" end def self.down drop_table "calls" end end thufir@arrakis ~/goodfellow-tool $ thufir@arrakis ~/goodfellow-tool $ cat db/migrate/003_logins.rb class Logins < ActiveRecord::Migration def self.up create_table "logins" do |login| login.column "login", :string login.column "employee_id", :string end Login.create :login => "0123", :employee_id => "1" Login.create :login => "1234", :employee_id => "1" Login.create :login => "2345", :employee_id => "2" end def self.down drop_table "logins" end end thufir@arrakis ~/goodfellow-tool $ thanks, Thufir --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
On Sat, 09 Feb 2008 05:39:34 +0000, Thufir wrote:> I believe that the relationships are in place and that the schema is > compatible:Sorry, just a minor tweak and it''s all good :) That''s very cool, I''m still poking it, but that is very, very, interesting! thufir@arrakis ~/goodfellow-tool $ thufir@arrakis ~/goodfellow-tool $ script/console Loading development environment.>> calls_logins=Call.find(:all, :conditions => {:login_id => 1},:include=> :login) => [#<Call:0xb703f93c @attributes={"id"=>"1", "comment"=>"start work", "created_at"=>"2008-02-08 15:12:13", "login_id"=>"1"}, @login=#<Login:0xb703f3d8 @attributes={"employee_id"=>"1", "id"=>"1", "login"=>"0123"}>>, #<Call:0xb703f234 @attributes={"id"=>"2", "comment"=>"start call", "created_at"=>"2008-02-08 15:12:13", "login_id"=>"1"}, @login=#<Login:0xb703f3d8 @attributes{"employee_id"=>"1", "id"=>"1", "login"=>"0123"}>>, #<Call:0xb703efa0 @attributes={"id"=>"3", "comment"=>"start break", "created_at"=>"2008-02-08 15:12:13", "login_id"=>"1"}, @login=#<Login:0xb703f3d8 @attributes={"employee_id"=>"1", "id"=>"1", "login"=>"0123"}>>]>>?> calls_logins[1].comment => "start call">>?> calls_logins[1].login.login => "0123">>?> quit thufir@arrakis ~/goodfellow-tool $ thanks, Thufir --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---