【问题标题】:Rails Routes: Cleaner if statement with authenticate blockRails Routes:带有身份验证块的更清晰的 if 语句
【发布时间】: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

【问题讨论】:

    标签: ruby-on-rails routes ruby-on-rails-6


    【解决方案1】:

    就可读性而言,这已经是干净易懂的代码了。 你当然可以这样写:

    authenticate :user, lambda { |u| Rails.env.development? || u.admin?  } do
       mount Sidekiq::Web => '/sidekiq'
    end 
    

    与这个较短的符号的唯一区别是您总是调用authenticate 方法。

    【讨论】:

    • 我在发布之前尝试过这个,但是在检查开发环境之前会进行身份验证。在开发中,它不需要进行身份验证。
    猜你喜欢
    • 2012-04-20
    • 1970-01-01
    • 2020-08-09
    • 2021-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多