# Problems w/ selecting model data in the right order

**URL:** <https://www.ruby-forum.com/t/problems-w-selecting-model-data-in-the-right-order/103628>\
**Category:** Rails\
**Created:** [May 8, 2007, 5:10pm UTC](https://www.ruby-forum.com/t/problems-w-selecting-model-data-in-the-right-order/103628 "2007-05-08T17:10:13Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![clemrock](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c57346/32.png) [@clemrock](https://www.ruby-forum.com/u/clemrock)\
**Post date:** [May 8, 2007, 5:10pm UTC](https://www.ruby-forum.com/t/problems-w-selecting-model-data-in-the-right-order/103628/1 "2007-05-08T17:10:13Z")

</div>

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.

```auto
    @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')
```

I tried to scrub the fields I needed using the collect method:

```auto
    @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
```

here’s the method call and export

```auto
@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")

```

Here’s the export method:

```auto
  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
```

Any idea what I’m doing wrong?

---

<div class="post-metadata">

**Author:** ![clemrock](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c57346/32.png) [@clemrock](https://www.ruby-forum.com/u/clemrock)\
**Post date:** [May 8, 2007, 9:39pm UTC](https://www.ruby-forum.com/t/problems-w-selecting-model-data-in-the-right-order/103628/2 "2007-05-08T21:39:43Z")

</div>

Your join is wrong. Should be ON users.id = accounts.user\_id
