这是我的代码:
class UserTopicVisit < ActiveRecord::Base
belongs_to :user
belongs_to :topic
def self.log_last_user_topic_visit(user_id, topic_id)
visit = UserTopicVisit.find_or_create_by_user_id_and_topic_id(user_id, topic_id)
visit.update_attributes!(:last_visit => Time.now.to_formatted_s(:db))
end
end
哪个是自我解释。
问题是:我需要能够通过简单的mysql查询更新没有事务的对象属性。如何使用activerecord实现这一目标?
答案 0 :(得分:0)
也许您正在寻找update-column
更新对象的单个属性,而不调用save
- 跳过验证。
- 跳过回调。
如果该列可用,则- updated_at / updated_on列不会更新。
答案 1 :(得分:0)
update_attributes
使用了一个交易,但奇怪的是,save
没有,所以如果您想要回调以及所有没有交易的爵士乐,您可以这样做:
visit.last_visit = Time.now.to_formatted_s(:db)
visit.save!
在幕后,update_attributes
实际上只是调用attributes=
然后调用save
。