我的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
为了简化代码,我去掉了一条除非语句。我怎么能这么做呢?
发布于 2011-10-05 22:01:29
unless something
等同于if !something
。在您的情况下,这将是
if !(request.subdomain.empty? && current_user.nil?)
但是,您希望
if (!request.subdomain.empty? && !current_user.nil?)
使用布尔代数(De Morgan规则),您可以将其重写为
if !(request.subdomain.empty? || current_user.nil?)
使用unless
unless request.subdomain.empty? || current_user.nil?
发布于 2011-10-05 22:09:39
使用:
if (!request.subdomain.empty? && !current_user.nil?)
我从不将unless
与任何更复杂的东西(包含或/和)一起使用,对于这样的语句很难推理。
https://stackoverflow.com/questions/7662471
复制相似问题