Rails - Active Record :conditions overrides :select

Posted by Nick on Stack Overflow See other posts from Stack Overflow or by Nick
Published on 2010-03-17T20:00:11Z Indexed on 2010/03/17 21:01 UTC
Read the original article Hit count: 249

I have a fairly large model and I want to retrieve only a select set of fields for each record in order to keep the JSON string I am building small.

Using :select with find works great but my key goal is to use conditional logic with an associated model. Is the only way to do this really with a lamda in a named scope? I'm dreading that perhaps unnecessarily but I'd like to understand if there is a way to make the :select work with a condition.

This works:

@sites = Site.find  :all, :select => 'id,foo,bar'

When I try this:

@sites = Site.find  :all, :select => 'id,foo,bar', :include => [:relatedmodel],
                  :conditions => ["relatedmodel.type in (?)", params[:filters]]

The condition works but each record includes all of the Site attributes which makes my JSON string way way too large.

Thanks for any pointers!

© Stack Overflow or respective owner

Related posts about ruby-on-rails

Related posts about activerecord