ruby – 可能使用三元运算符表达条件HAML
发布时间:2020-12-16 21:12:44 所属栏目:百科 来源:网络整理
导读:试图用一种更简洁的方式在HAML和 Ruby中表达这个条件,也许用三元运算符: - if @page.nil? %br (nothing yet)- else %br #{@page.name} (根据Neat way to conditionally test whether to add a class in HAML template寻找类似的方法) 你的帮助将不胜感激:)
试图用一种更简洁的方式在HAML和
Ruby中表达这个条件,也许用三元运算符:
- if @page.nil? %br (nothing yet) - else %br #{@page.name} (根据Neat way to conditionally test whether to add a class in HAML template寻找类似的方法) 你的帮助将不胜感激:) 解决方法
您拥有的代码使文本成为< br>的子代.元件;这是不可取的.我认为你真正的意思是:
%br - if @page.nil? (nothing yet) - else #{@page.name} 为此你可以简单地做: %br #{@page.nil? ? "(nothing yet)" : @page.name} 要么 %br = @page.nil? ? "(nothing yet)" : @page.name 或者干脆: <br>#{@page ? @page.name : "(nothing yet)"} 但是,我个人会在控制器中“修复”这个,以便你总是有一个@page,例如: unless @page @page = Page.new( name:"(nothing yet)",… ) end 有了它,你可以找出一个新的/空/无页面的样子,并让你的视图像对待任何其他页面一样对待它.您的@page仍然没有@ page.id,因此您可以使用它来进行测试,以确定您是创建新项目还是编辑现有项目. 这就是我处理可用于创建或编辑项目的所有表单的方法:通过创建(但不添加到数据库)具有默认值的项目来提供默认值. 旁白:你正在创建一个< br>这是almost never a good idea,你正在用Haml创建它should not be used for content markup.你可以退一步思考你在做什么. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |