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,並且不要在索引操作上跳過它。
任何幫助解決這件事情,將不勝感激