2014-09-25 46 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