在带有Ruby 3.2.2的rails 7.1中,使用内联代码仅针对特定操作运行before_action过滤器的正确语法是什么?

我try 了Before action with inline method中建议的所有方法,但总是出错.

before_action only: :destroy, { authorize!(with: AllowAllPolicy) }
before_action only: [:destroy], { authorize!(with: AllowAllPolicy) }
before_action { authorize!(with: AllowAllPolicy) }, only: :destroy
before_action { authorize!(with: AllowAllPolicy) }, only: [:destroy]
before_action { authorize!(with: AllowAllPolicy), only: :destroy }
before_action { authorize!(with: AllowAllPolicy), only: [:destroy] }
before_action(only: :destroy, { authorize!(with: AllowAllPolicy) })
before_action(only: [:destroy], { authorize!(with: AllowAllPolicy) })

推荐答案

你差一点就成功了.您的第一个不带逗号的选项就是您想要的,稍作调整即可解决优先级问题,因此可以 Select :

before_action(only: :destroy) { authorize!(with: AllowAllPolicy) }

## or

before_action only: :destroy do
  authorize!(with: AllowAllPolicy)
end

Ruby-on-rails相关问答推荐

仅当未在带有ENV[';Dyno';]的Heroku问题上运行时才初始化Sidekiq Cron

使用超级用户角色和未知密码创建与POSTRES用户的连接

我try 使用Ruby on Rails7创建一个Carbon 足迹计算器.但我无法保存和用户S对象

Rails - Comment.count没有改变1

Mongoid 3 + Heroku (MongoHQ) 导致 Moped::Errors::OperationFailure

无法连接 localhost:3000 ruby​​ on rails in vagrant

从控制器中删除 Cookie

不允许请求来源:使用 Rails5 和 ActionCable 时的 http://localhost:3001

Rails:从视图内渲染视图(不是部分视图)

批量查找 mongoDB 记录(使用 mongoid ruby​​ 适配器)

Ruby on Rails 中的MySQL 服务器已经消失

Rails:进行不可逆转的迁移是不是很糟糕?

rails active admin 部署:找不到文件'jquery-ui'

通过 Ruby 或 Rails 的 LDAP

如何在同一个 Rails 控制器操作中处理多个 HTTP 方法

如何为模型添加属性?

如何在 Rails 应用程序中测试 ElasticSearch (Rspec)

Ruby on Rails Bootstrap Glyphicons 不工作

ActiveRecord 何时会保存关联?

如何为 Rails 控制器添加延迟以进行测试?