2011-07-23 4 views
8

我々が意味している。このRailsのskip_before_filterを行うための3ウェイ、:レール2.8でのみ

skip_before_filter :require_login, :only => [:create,:new,:accept] 

ようskip_before_filterを書くことができ、私はこれらのアクション[:create,:new,:accept]にフィルタrequire_loginを適用したかった、と他人のためにフィルタをスキップ。

しかし、このように、レールはdeprecatedで、新しいskip_filterが追加されています。私はこの

skip_filter :require_login, :only => [:create,:new,:accept] 

が、そのが動作していないので、どのように私はレール廃止されていません

答えて

11
  • skip_before_filter 3、see sourceでこれを行うことができます試してみました。

  • 期待通りに使用しています。

どのように正しく動作していないと推測しましたか?

+0

はい、私のミスのthats ..くぼみは..感謝:) – RameshVel

+0

それを参照してください:D私は、多くの場合、状況の同じ種類に直面する;) – apneadiving

14

これは正しくない使用skip_before_filterです。

アクション[:create,:new,:accept]のみにフィルタrequire_loginを適用し、他の人のためのフィルタをスキップするには、最初のフィルタ適用する必要があります:

before_filter :require_login 

を次に、除いて、このフィルタをスキップするようにレールを伝える必要がありますアクション "create、new and accept"のアクションです。

skip_before_filter :require_login, :except => [:create,:new,:accept] 

あなたも、あなたがbefore_filterafter_filter、およびaround_filterフィルタを含むことを可能にする、skip_filterを使用することができます。

skip_filter :require_login, :except => [:create,:new,:accept] 

参考:Railsの4.0にRails 3.2 guide

、同等の方法は次のとおりです。before_action 、および:skip_before_action。

参考:Rails 4.0 guide

+0

これは良い情報ですありがとうございました。 – dps

関連する問題