ruby-on-rails – 除非\u0026\u0026语句

我的application_controller.rb中有以下内容
def layout
  unless request.subdomain.empty? && current_user.nil?
    self.class.layout 'admin'
  end
end

似乎上面的代码不起作用.但是当我执行以下操作时,它会工作.

def layout
  unless request.subdomain.empty?
    unless current_user.nil?
      self.class.layout 'admin'
    end
  end
end

我想通过删除一个except语句来简化代码.我该怎么办?

解决方法

除非事情相当于if!在你的情况下,那就是
if !(request.subdomain.empty? && current_user.nil?)

随你怎么便

if (!request.subdomain.empty? && !current_user.nil?)

使用布尔代数(De Morgan规则),可以重写

if !(request.subdomain.empty? || current_user.nil?)

使用除非

unless request.subdomain.empty? || current_user.nil?

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...