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、edit_at) を作成する必要があり、at によって最後に編集されたものを表示できます。各編集に加えられた変更も追跡したい場合は、実際にaudited gemを使用できます

履歴を維持したくない場合は、edited_by (現在のユーザー)、edited_at (Time.now()) フィールドをガイドラインに追加し、ガイドラインの更新時にこれらの列を更新できます。

そしてもちろん、承認規則では、ログインしているすべてのユーザーがガイドラインを編集できるようにする必要があります。

お役に立てれば

于 2013-02-21T09:49:53.947 に答える