On Wed, Nov 21, 2012 at 8:33 AM, Erwin <[email protected]> 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 [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit https://groups.google.com/groups/opt_out.