Another related question, which database are you using locally?

I had problems developing stuff that worked fine with sqlite locally but did
not work with postgres out on heroku. Custome sql -- like your named scope
-- was my problem. From what I remember, LIKE is actually ILIKE in postgres
if you want case insensitive results.

Sunny

On Wed, May 12, 2010 at 6:10 PM, Jonathan Dance <[email protected]> wrote:

> I'd recommend using Array#size, not Array#count. Only use #count when your
> intent is to invoke a COUNT() query in SQL. I try to use #size for arrays
> and reserve #length for strings.
>
> If your intent was to invoke a COUNT() query, you'll want to use
> named_scopes all the way through, as such:
>
> def checked_sentence_since_last_login
>   self.sentences.checked.scoped(:conditions => ["checked_at
> > ?", last_login_at])
> end
>
> That said, you *can* use Array#count, as it is defined in Ruby 1.8.7 and
> 1.9.1 but not 1.8.6. Note that these are Sinatra apps:
>
> % heroku console --app aspen-mri186
> >> [].count
> NoMethodError: undefined method `count' for []:Array
>
> % heroku console --app bamboo-ree187
> >> [].count
> => 0
>
> % heroku console --app bamboo-mri191
> >> [].count
> => 0
>
> --wuputah
>
> On Mon, May 10, 2010 at 10:37 PM, adam <[email protected]> wrote:
>
>> My heroku app is tripping over code at the point where i try to do a
>> count on an empty array. But in development on my local machine with
>> the very same database and code (taps db:pull) it doesnt trip up.
>>
>> can anyone tell me why this is? im using ruby 1.8.7 and rails 2.3.2
>>
>> below is the offending line which produces the error NoMethodError
>> (undefined method `count' for []:Array):
>>
>>
>> @recently_checked_sentences_count =
>> @user.checked_sentences_since_last_login.count
>>
>> with method below
>>
>> def checked_sentences_since_last_login()
>>    self.sentences.checked.find(:all, :conditions => ["checked_at
>> > ?", last_login_at])
>>  end
>>
>> which uses named_scope
>>
>> named_scope :checked,  lambda{|limit| { :limit => limit, :order =>
>> "checked_at DESC", :conditions => "checked_at IS NOT NULL" } }
>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Heroku" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected]<heroku%[email protected]>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/heroku?hl=en.
>>
>>
>  --
> You received this message because you are subscribed to the Google Groups
> "Heroku" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<heroku%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/heroku?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Heroku" 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 this group at 
http://groups.google.com/group/heroku?hl=en.

Reply via email to