0

我目前正在使用Rails 3.2應用程序,其中有兩個控制器。一個是運動,另一個是帖子。他們都有一個before_filter。請看看控制器和路線如下:跳過之前篩選嵌套的資源

廣告活動控制器:

class CampaignsController < ApplicationController 

    before_filter :authenticate_user!, except: [:show, :landing] 

帖子控制器:

class PostsController < ApplicationController 
    before_filter :check_sign_in, :except => [:index] 

路線:

resources :campaigns do 

    resources :posts 
end 

在Campaigns Controller中嵌套Posts控制器之前,Posts控制器中的before_filter工作正常,因爲我不希望用戶登錄才能查看帖子。嵌套後,before_filter即使在通過Posts控制器中的:except塊之後也不會檢查用戶。雖然我確實希望用戶能夠登錄其他帖子操作。

:check_sign_in是在應用控制器,看起來像這樣:

protected 

def check_sign_in 

redirect_to "#{sign_in_url}?origin=#{CGI::escape(request.fullpath)}" unless user_signed_in? 

end 

我已經試過許多東西要跳過帖子指數動作的before_filter但沒有人似乎工作。我也嘗試過skip_before_filter和skip_filter,但它們也不起作用。他們只是在所有帖子動作上跳過before_filter,如果我通過except塊而不是執行before_filter,並且不要在索引操作上跳過它。

任何幫助解決這件事情,將不勝感激

回答

0

的問題沒有解決,所以我結束了做它的其他方式!