Your join is wrong. Should be ON users.id = accounts.user_id
On May 8, 9:10 am, Clem Rock
<rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org>
wrote:> Hello,
>
> I''m trying to extract data from two related tables and send
only
> specified fields to a method that creates a csv export. The problem
> is when send the data from the find method, only some of the fields
> match up in the export and are actually exported. I really only need
> to export the email, phone, and organization fields from the users table
> and the first_name, last_name, and expire_on fields from the accounts
> table. Accounts belongs_to the users table via the user_id.
>
> [code]
> @account_all = Account.find(:all, :select => ''accounts.*,
> users.email, users.phone, users.organization'',
> :conditions => @conditions,
> :joins => "LEFT OUTER JOIN users on
> users.id = accounts.id" ,
> :order => ''accounts.created_at
DESC'')
> [/code]
>
> I tried to scrub the fields I needed using the collect method:
> [code]
> @format_account = @account_all.collect do |account|
> account.first_name = account.first_name
> account.last_name = account.last_name
> account.phone = account.phone
> account.email = account.email
> account.organization = account.organization
> account
> end if @account_all
> [/code]
>
> here''s the method call and export
> [code]
> @account_keys = [''first_name'',
''last_name'',
''phone'',''email'',
> ''organization'']
>
> csv_string = format_faster_csv(@format_account, @account_keys)
> send_data(csv_string, :type => ''text/csv;
charset=iso-8859-1;
> header=present'', :disposition => "attachment;
> filename=exported_accounts.csv")
>
> [/code]
>
> Here''s the export method:
> [code]
> def format_faster_csv(csv_array, fields=csv_array.first.keys)
> csv_string = FasterCSV.generate do |csv|
> csv << fields.map {|f| f.titleize}
> csv_array.each do |row|
> csv << fields.map{|f| row[f]}
> end
> end
> end
> [/code]
>
> Any idea what I''m doing wrong?
>
> --
> Posted viahttp://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---