本质上:
- 我想将
title
修订的标题设置为它是修订的帖子的标题。 - 如果新帖子不是修订版(或),我想将 设置
revision_id
为id
is_revision = false
到目前为止,我在这方面遇到了很多麻烦。任何帮助表示赞赏。
post.rb
class Post < ActiveRecord::Base
has_many :revisions, class_name: "Post", foreign_key: "revision_id"
belongs_to :revision, class_name: "Post"
#...
before_save :post_title
def post_title
if :is_revision == false
@revision_id = @post_id
elsif :is_revision == true
:revision_id != :post_id
@title = @revision.title
end
end
#...
end
更新
我现在可以通过控制器来完成这项工作。我是否仍应致力于使这项工作在模型中进行?相同的代码在创建和更新操作下。
post_controller.rb
def create
@post = current_user.posts.new(params[:post])
if @post.save
if @post.is_revision == false
@post.revision_id = @post.id
@post.save
elsif @post.is_revision == true
@post.title = @post.revision.title
@post.save
end
end
end