2

我做了一个交易来计算 current_user 的社区拥有多少成员,以及每个社区有多少成员。

如果其他注册用户在特定社区按“加入”。
用户将成为社区成员,社区所有者获得 1 分。

当然,当用户从社区中按下“退出”时,它会执行相反的操作。

我是这样编码的,到目前为止它工作得很好。
但是,我发现只有一个社区不接受此交易。
实际上,它会切换标志,但没有这些计算和计数事务。所以积分的数量和成员的数量不会改变:(看起来记录几乎被锁定了!

为什么会这样?就一张唱片!!

控制器

    if current_user.voted_up_on? @community
        current_user.dislikes @community
        
        #Calculate the points of the community's owner
        if @community.user
            @user = User.find(@community.user_id)
            @user.profile.total_point = Community.sum(:cached_votes_up, :conditions => ["user_id = ?", @user]) + @user.profile.bonus_point
            @user.profile.next_level = next_level_set(@user)
            @user.save
        end
        
        #count how many members the community has.
        @users =  User.where(:id => @community.likes.map(&:voter_id))
        @community.cached_votes_up = @users.count           
        @community.save
        
        
    else
        current_user.likes @community
        
        #Calculate the points of the community's owner
        if @community.user
            @user = User.find(@community.user_id)
            @user.profile.total_point = Community.sum(:cached_votes_up, :conditions => ["user_id = ?", @user]) + @user.profile.bonus_point
            @user.profile.next_level = next_level_set(@user)
            @user.save
        end
        
        #count how many members the community has.
        @users =  User.where(:id => @community.likes.map(&:voter_id))
        @community.cached_votes_up = @users.count           
        @community.save
                    
        
    end
4

1 回答 1

2

我猜您正在尝试调用save@community但由于某种原因未能保存,可能是验证错误。我建议检查 的结果@community.save,如果是false,请检查@community.errors验证错误。另请参阅有关该主题的Rails 指南

于 2013-03-20T05:45:12.400 回答