1. ホーム
  2. ruby-on-rails

[解決済み] Railsで `before_action` での `only:` はどのように機能するのですか?

2022-02-12 12:31:21

質問

足場生成の後、通常このような行が表示されます。

before_action :set_newsletter_email, only: [:show, :edit, :update, :destroy]

どなたか、具体的にどのようにこの only: 記号はどのように機能するのでしょうか?

解決方法は?

その only オプションの before_action は、メソッド/ブロックが最初に実行されるときに、1つのアクションまたはアクションのリストを定義します。

# defined actions: [:show, :edit, :update, :destroy]
before_action :set_newsletter_email, only: [:show, :edit]

set_newsletter_email メソッドが呼び出されるのは showedit アクションを使用します。


反対側のオプション except は、メソッドやブロックを実行しないタイミングを定義します。

# defined actions: [:show, :edit, :update, :destroy]
before_action :set_newsletter_email, except: [:show, :edit]

set_newsletter_email メソッドは、既存のすべてのアクションに対して呼び出されます EXCEPT showedit .


only / except は、単なるホワイトリスト/ブラックリストの一種です。