我做了一个交易来计算 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