2014-09-25 41 views
-1

我有一个就业页面,用户可以创建新的作业编辑和销毁他们的工作,我想让用户编辑或销毁只有当他们的帖子连接,否则他们将返回到这个我的工作显示页面有这样的代码在我的工作控制器权限在栏杆

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] 

只能说明在此不工作时,我不连接的,并尝试编辑我的工作,它重定向我日志中的形式,但登录后重定向我的一部分主页而不是编辑页面

回答

-1

首先,您粘贴的代码块看起来很奇怪,原因有三:

  1. 缩进是错误的
  2. 你有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 
    
  • +0

    我得到了这个答案一downvote,但没有为什么,会很感激的注释说明。 – sebkkom 2014-10-21 09:03:18