0

以前在我的应用程序中,只有指南的所有者可以编辑他自己的指南,但我希望任何人都能够编辑指南,然后当它更新时,它会显示“由 .... 于 .... 日期编辑'。这可能吗?

我在guidelines_controller.rb 中的更新操作是

def update
    @guideline = Guideline.find(params[:id])

    if params[:guideline] && params[:guideline].has_key?(:user_id)
        params[:guideline].delete(:user_id) 
    end

    respond_to do |format|
      if @guideline.update_attributes(params[:guideline])
        format.html { redirect_to @guideline, notice: 'Guideline was successfully updated.' }
        format.json { head :no_content }
      else
        format.html { render action: "show" }
        format.json { render json: @guideline.errors, status: :unprocessable_entity }
      end
    end
  end

并且在同一个控制器中编辑操作是

 def edit

      @guideline = Guideline.find(params[:id])
      @specialties = Guideline.order(:specialty).uniq.pluck(:specialty)

  end

用户模型 user.rb 是

 attr_accessible :content, :hospital, :title, :user_id, :guideline_id, :specialty
 has_many :guidelines
 has_many :favourite_guidelines

指南模型是

belongs_to :user
 has_many :favourite_guidelines
4

1 回答 1

0

如果要维护编辑的历史记录,则必须创建另一个表(guideline_edits:guideline_id、user_id、edited_at),并且可以显示 at 的最后编辑。如果您还想跟踪每个编辑的更改,您实际上可以使用审核的gem

如果您不想维护历史记录,您可以将edited_by(当前用户)、edited_at(Time.now())字段添加到您的指南中,并在更新指南时更新这些列。

当然,在您的授权规则中,您必须允许任何登录用户编辑任何指南。

希望这可以帮助

于 2013-02-21T09:49:53.947 回答