我有一个工作页面,用户可以创建新的工作编辑和销毁他们的工作,我想让用户只编辑或销毁他们的帖子只有连接否则他们将返回到工作展示页面为此我有这个代码在我的工作控制器
def require_login
@job = current_user.jobs.find_by_slug(params[:id])
redirect_to job_path if @job.nil?
end
before_action :login_required
def login_required
redirect_to new_user_session_path unless user_signed_in?
end
before_action :login_required, :require_login, only: [:edit, :update, :destroy]
唯一不起作用的部分是当我没有连接并尝试编辑我的工作时,它会将我重定向到登录表单但登录后会将我重定向到主页而不是编辑页面
答案 0 :(得分:-1)
首先,您粘贴的代码块看起来很奇怪,原因有三:
before_action :login_required
两次,而且它们不一样根据您所写的内容,您希望用户仅在他们登录时编辑或销毁作业 - 否则您希望将他们发送到作业索引页面。如果那是对的,控制器中的代码应该类似:
class JobsController < ApplicationController
before_filter :require_login, :only => [:edit, :update, :destroy]
def edit
# your code here
end
def update
# your code here
end
def destroy
# your code here
end
private
def require_login
redirect_to job_path unless user_signed_in?
end
end