Well the controller would never even get invoked from the console so this 
wouldn't be relevant to this bug

Sent from my iPad

On May 12, 2010, at 10:31, Chris Comstock <[email protected]> wrote:

> I was speaking from my experience since it seemed very similar to a situation 
> I had recently and that is how I resolved it.  I read your response and was 
> just sharing my solution as it didn't make sense to me either but it work for 
> me.
> 
> 
> On Wed, May 12, 2010 at 11:01 AM, Patrick Minton <[email protected]> 
> wrote:
> I believe I clearly demonstrated using the console that this has nothing to 
> do with the controller.  Not sure how you got that idea.
> 
> On May 12, 2010, at 6:29 AM, Chris Comstock wrote:
> 
>> I just experienced a very similar situation and it ended up having nothing 
>> to do with the activity.  It was only appearing in production as well.
>> 
>> I don't know the root cause but I believe I was able to fix the problem by 
>> removing the base controller from the cache action.  The commented out line 
>> is the original line.  There may be some other ramifications by removing 
>> this but it solved my problem for the time being.
>> 
>> def cache_action?
>>     #!logged_in? && controller_name.eql?('base') && params[:format].blank?
>>     !logged_in? && params[:format].blank? 
>>   end  
>> 
>> 
>> 
>> On Tue, May 11, 2010 at 7:25 PM, Patrick Minton <[email protected]> 
>> wrote:
>> The following query is doing some weird shit in my database:
>> 
>> >> User.active.find_by_activity({:limit => 5, :require_avatar => false})
>> ActiveRecord::RecordNotFound: Couldn't find User with ID=10
>>      from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/base.rb:1591:in
>>  `find_one'
>>      from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/base.rb:1574:in
>>  `find_from_ids'
>>      from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/base.rb:616:in
>>  `find_without_pagination'
>>      from 
>> /apps/thecommunity/releases/20100509205223/vendor/plugins/community_engine/plugins/paginating_find/lib/paginating_find.rb:103:in
>>  `find'
>>      from 
>> /apps/thecommunity/releases/20100509205223/vendor/plugins/community_engine/app/models/user.rb:93:in
>>  `find'
>>      from 
>> /apps/thecommunity/releases/20100509205223/vendor/plugins/community_engine/app/models/user.rb:165:in
>>  `find_by_activity'
>>      from 
>> /apps/thecommunity/releases/20100509205223/vendor/plugins/community_engine/app/models/user.rb:165:in
>>  `map'
>>      from 
>> /apps/thecommunity/releases/20100509205223/vendor/plugins/community_engine/app/models/user.rb:165:in
>>  `find_by_activity'
>>      from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/named_scope.rb:186:in
>>  `send'
>>      from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/named_scope.rb:186:in
>>  `method_missing'
>>      from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/base.rb:2148:in
>>  `with_scope'
>>      from (__DELEGATION__):2:in `__send__'
>>      from (__DELEGATION__):2:in `with_scope'
>>      from 
>> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/named_scope.rb:179:in
>>  `method_missing'
>>      from (irb):20
>> 
>> There are two things that are weird about this:
>> 
>> 1) There is, indeed, a user with that ID:
>> 
>> >> u = User.find(10)
>> => #<User id: 10, login: "devsample", email: "[email protected]", 
>> description: "", avatar_id: nil, crypted_password: 
>> "1ce245b87890a2323e7a67087415b1eb976bd9f3", salt: 
>> "bc615491c6881df432e99cf24b71712f520dd41a", created_at: "2010-02-24 
>> 22:27:30", updated_at: "2010-05-11 21:24:05", remember_token: nil, 
>> remember_token_expires_at: nil, stylesheet: nil, view_count: 3, vendor: 
>> false, activation_code: "c2f28946842f9822491e4f417d68978b0c63606c", 
>> activated_at: nil, state_id: nil, metro_area_id: nil, login_slug: 
>> "devsample", notify_comments: false, notify_friend_requests: true, 
>> notify_community_news: false, country_id: nil, featured_writer: false, 
>> last_login_at: "2010-02-24 22:31:08", zip: nil, birthday: "1980-01-01", 
>> gender: nil, profile_public: true, activities_count: 2, sb_posts_count: 0, 
>> sb_last_seen_at: "2010-05-11 21:22:00", role_id: 3, first_name: "Dev", 
>> middle_name: "", last_name: "Sample", company_id: nil, employer_id: nil, 
>> interests: "", community_hopes: "", community_promises: "", job_favorites: 
>> "", job_title: "">
>> 
>> 2) That user isn't active so it shouldn't be within the User.active named 
>> scope and therefore should never be found by the find_by_activity query 
>> (should it?):
>> 
>> >> u.active?
>> => false
>> >> u.activated_at
>> => nil
>> 
>> Anyone have any idea what's going on here?  Looking at the code in user.rb 
>> it's kind of unclear to me how this function can limit the users found to 
>> those within the :active named scope because it just does a :
>> 
>>   def self.find_by_activity(options = {})
>>     options.reverse_merge! :limit => 30, :require_avatar => true, :since => 
>> 7.days.ago   
>>     #Activity.since.find(:all,:select => Activity.columns.map{|column| 
>> Activity.table_name + "." + column.name}.join(",")+', count(*) as 
>> count',:group => Activity.columns.map{|column| Activity.table_name + "." + 
>> column.name}.join(","),:order => 'count DESC',:joins => "LEFT JOIN users ON 
>> users.id = activities.user_id" )
>>     #Activity.since(7.days.ago).find(:all,:select => 'activities.user_id, 
>> count(*) as count',:group => 'activities.user_id',:order => 'count 
>> DESC',:joins => "LEFT JOIN users ON users.id = activities.user_id" )
>>     activities = Activity.since(options[:since]).find(:all, 
>>       :select => 'activities.user_id, count(*) as count', 
>>       :group => 'activities.user_id', 
>>       :conditions => "#{options[:require_avatar] ? ' users.avatar_id IS NOT 
>> NULL' : nil}", 
>>       :order => 'count DESC', 
>>       :joins => "LEFT JOIN users ON users.id = activities.user_id",
>>       :limit => options[:limit]
>>       )
>>     activities.map{|a| find(a.user_id) }
>>   end  
>> 
>> And, in fact, if I do it without the named scope it works fine:
>> 
>> >> users = User.find_by_activity({:limit => 5, :require_avatar => false}); 
>> >> nil
>> => nil
>> >> users.include?(u)
>> => true
>> 
>> So, it looks like the :active named scope doesn't actually change which 
>> users self.find_by_activity will find (because that isn't a generic 
>> ActiveRecord finder method, I assume), but *does* make ActiveRecord think 
>> that users that don't meet the conditions in that named scope aren't in the 
>> database.  Anyone have any suggestions?  This is making the site crash 
>> because this user updated their profile before deactivating and that profile 
>> update is one of the most recent activities.
>> 
>> 
>> 
>> 
>> 
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "CommunityEngine" 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/communityengine?hl=en.
>> 
>> 
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "CommunityEngine" 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/communityengine?hl=en.
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "CommunityEngine" 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/communityengine?hl=en.
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "CommunityEngine" 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/communityengine?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"CommunityEngine" 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/communityengine?hl=en.

Reply via email to