Rails Routes:带有身份验证块的更清晰的 if 语句
Posted
技术标签:
【中文标题】Rails Routes:带有身份验证块的更清晰的 if 语句【英文标题】:Rails Routes: Cleaner if statement with authenticate block 【发布时间】:2021-08-19 01:21:34 【问题描述】:有没有更简洁的方法来写这个?喜欢使用 OR 而不是 if 语句?
if Rails.env.development?
mount Sidekiq::Web => '/sidekiq'
else
authenticate :user, lambda |u| u.admin? do
mount Sidekiq::Web => '/sidekiq'
end
end
【问题讨论】:
【参考方案1】:就可读性而言,这已经是干净易懂的代码了。 你当然可以这样写:
authenticate :user, lambda |u| Rails.env.development? || u.admin? do
mount Sidekiq::Web => '/sidekiq'
end
与这个较短的符号的唯一区别是您总是调用authenticate
方法。
【讨论】:
我在发布之前尝试过这个,但是在检查开发环境之前会进行身份验证。在开发中,它不需要进行身份验证。以上是关于Rails Routes:带有身份验证块的更清晰的 if 语句的主要内容,如果未能解决你的问题,请参考以下文章