Forum: Ruby on Rails Problems w/ selecting model data in the right order

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
8d4c3605bb2853f5088f8719d352f3cd?d=identicon&s=25 Clem Rock (clemrock)
on 2007-05-08 17:10

   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.

    @account_all = Account.find(:all, :select => 'accounts.*,,, users.organization',
                                :conditions => @conditions,
                                :joins => "LEFT OUTER JOIN users on =" ,
                                :order => 'accounts.created_at DESC')

I tried to scrub the fields I needed using the collect method:
    @format_account = @account_all.collect do |account|
       account.first_name = account.first_name
       account.last_name = account.last_name = =
       account.organization = account.organization
    end if @account_all

here's the method call and export
@account_keys = ['first_name', 'last_name', 'phone','email',

    csv_string = format_faster_csv(@format_account, @account_keys)
    send_data(csv_string, :type => 'text/csv; charset=iso-8859-1;
header=present', :disposition => "attachment;


Here's the export method:
  def format_faster_csv(csv_array, fields=csv_array.first.keys)
    csv_string = FasterCSV.generate do |csv|
      csv << {|f| f.titleize}
      csv_array.each do |row|
        csv <<{|f| row[f]}

Any idea what I'm doing wrong?
6e9db38e16957cc51cf9cee9de399249?d=identicon&s=25 dasil003 (Guest)
on 2007-05-08 21:39
(Received via mailing list)
Your join is wrong.  Should be ON = accounts.user_id
This topic is locked and can not be replied to.