Ruby on rails 更新状态将显示用户名

Ruby on rails 更新状态将显示用户名,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,以前在我的应用程序中,只有指南的所有者可以编辑自己的指南,但我希望任何人都能够编辑指南,当指南更新后,会显示“编辑人…”。。。。在…上日期'。这可能吗 我在controller.rb中的更新操作是 def update @guideline = Guideline.find(params[:id]) if params[:guideline] && params[:guideline].has_key?(:user_id) params[:gui

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

我在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

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

如果不想维护历史记录,可以将“编辑人”(当前用户)和“编辑时间”(Time.now())字段添加到指南中,并在更新指南时更新这些列

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


希望这对您有所帮助

您能显示用户和指南的关联吗?指南表中是否有记录上次编辑该指南的用户的列