Ruby on rails 更新状态将显示用户名
以前在我的应用程序中,只有指南的所有者可以编辑自己的指南,但我希望任何人都能够编辑指南,当指南更新后,会显示“编辑人…”。。。。在…上日期'。这可能吗 我在controller.rb中的更新操作是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
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())字段添加到指南中,并在更新指南时更新这些列 当然,在您的授权规则中,您必须允许任何登录用户编辑任何准则
希望这对您有所帮助您能显示用户和指南的关联吗?指南表中是否有记录上次编辑该指南的用户的列