【问题标题】:ruby on rails before_save increments different column of tableruby on rails before_save 增加表的不同列
【发布时间】:2012-09-03 14:06:13
【问题描述】:

这是我的 like.rb 模型

class Like < ActiveRecord::Base
  attr_accessible :user_id, :post_id

  before_save :increment_post_total_likes

  before_destroy :decrement_post_total_likes

  scope :desc_ordered, :order => "created_at DESC"

  belongs_to :post
  belongs_to :user

  def increment_post_total_likes
    p = Post.find(self.post_id)
    p.increment!(:total_likes)
    p.save
  end

  def decrement_post_total_likes
    p = Post.find(self.post_id)
    p.decrement!(:total_likes)
    p.save
  end

  def self.alreadyLiked(post_id, user_id)
    where(:user_id => user_id, :post_id => post_id).any?
  end

  def self.already_liked?(user_id)
    exists?(:user_id => user_id)
  end

end

问题是,当我喜欢一个帖子时,它会增加帖子total_likes 列,但也会增加另一个表列,这两个列共享相关列,如post_iduser_id,我不明白为什么。 ..

我只想在 likes 表上使用 before_save 和 before_destroy

【问题讨论】:

    标签: mysql ruby-on-rails associations sql-update


    【解决方案1】:

    increment!save the record for you。尝试一下,不要爆炸。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-23
      相关资源
      最近更新 更多