On Wed, Nov 21, 2012 at 8:33 AM, Erwin <yves_duf...@mac.com> wrote:

> I wrote this scope in my Subdomain model :
>
>   scope :in_account, lambda { |account_id|
>     if account_id == "*"
>       where("account_id >= ?", 0)
>     else
>       where(account_id: account_id)
>     end
>   }
>
> where account_id == '*'  then all subdomain instances are selected
> when account_id is given , only subdomain instances in this account are
> selected
>
> is there a better writing ?

Try:

  scope :in_account, lambda { |account_id|
    where(account_id: account_id) if account_id != "*"
  }

If the conditional fails, this will just not interfere with the query.

If it's possible that account_id will be nil or blank (as on a page
accessed w/o passing any params), tack "&& account_id.present?" onto
the conditional.

-Dave

-- 
Dave Aronson, the T. Rex of Codosaurus LLC,
secret-cleared freelance software developer
taking contracts in or near NoVa or remote.
See information at http://www.Codosaur.us/.

-- 
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@googlegroups.com.
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to