在脚手架生成后,我们通常得到一条这样的线:
before_action :set_newsletter_email, only: [:show, :edit, :update, :destroy]
Run Code Online (Sandbox Code Playgroud)
有人能解释一下这个only:符号究竟是如何工作的以及它如何影响安全性?
MrY*_*iji 21
当首先执行方法/块时only,before_action定义一个动作或动作列表的选项.
例如:
# defined actions: [:show, :edit, :update, :destroy]
before_action :set_newsletter_email, only: [:show, :edit]
Run Code Online (Sandbox Code Playgroud)
该set_newsletter_email方法将在show和editactions 之前调用.
相反的选项except定义何时不执行方法/块.
# defined actions: [:show, :edit, :update, :destroy]
before_action :set_newsletter_email, except: [:show, :edit]
Run Code Online (Sandbox Code Playgroud)
set_newsletter_email将为所有现有操作EXCEPT show和调用该方法edit.
only/ except只是一种白名单/黑名单.
| 归档时间: |
|
| 查看次数: |
13350 次 |
| 最近记录: |