Rails中的ERB中<%、<%=、<%#和-%>之间的区别是什么?

Rails中的ERB中<%、<%=、<%#和-%>之间的区别是什么?

请说明在再培训局文件中使用的下列字符的用法:

<%   %>

<%=  %>

<%  -%>

<%#  %>

每一个都有什么用途?



大话西游666
浏览 2047回答 3
3回答

慕姐8265434

<%&nbsp;%>在括号内执行ruby代码。<%=&nbsp;%>在ERB文件中打印一些东西。<%&nbsp;-%>避免在表达式后中断行。<%#&nbsp;%>括号内的注释;未发送到客户端(与HTML注释相反)。参观,拜访鲁比博士有关再培训局的更多资料。

绝地无双

Rails不使用斯德利布再培训局默认情况下,它使用埃卢比..资料来源:这是开发计划署的评论,&nbsp;ActionView宝石规范,&nbsp;接受合并请求我在写这篇文章时做了.那里是它们之间的行为差异,特别是连字符操作符是如何操作的。%-和-%工作。文件很少,Ruby的ERB格式“正式”定义在哪里?下面是实证结论。所有测试都假设:require&nbsp;'erb'require&nbsp;'erubis'当你可以用-你必须通过-到trim_mode任选ERB.new用它。erubis:默认启用。例子:begin&nbsp;ERB.new("<%=&nbsp;'a'&nbsp;-%>\nb").result;&nbsp;rescue&nbsp;SyntaxError&nbsp;;&nbsp;else&nbsp;raise;&nbsp;endERB.new("<%=&nbsp;'a'&nbsp;-%>\nb"&nbsp;&nbsp;,&nbsp;nil,&nbsp;'-')&nbsp;.result&nbsp;==&nbsp;'ab'&nbsp;&nbsp; or&nbsp;raiseErubis::Eruby.new("<%=&nbsp;'a'&nbsp;-%>&nbsp;&nbsp;\n&nbsp;b").result&nbsp;==&nbsp;'a&nbsp;b'&nbsp;or&nbsp;raise什么-%是否:如果下一个字符是换行符,请删除它。埃卢比:如果整行只包含空白空间,则删除整行否则,如果标签前面有一个非空格,而后面只有白色,则删除后面的白色。否则,标签后面有一个非空格:什么都不做。在……里面<% %>(没有=),&nbsp;-是没用的,因为<% %>和<% -%>都是一样的。<% %>如果当前行仅包含空白空间,则移除当前行,否则不执行任何操作。在……里面<%= -%>(与=):例子:#&nbsp;RemoveERB.new("a&nbsp;\nb&nbsp;<%&nbsp;0&nbsp;-%>\n&nbsp;c",&nbsp;nil,&nbsp;'-').result&nbsp;==&nbsp;"a&nbsp;\nb&nbsp;&nbsp;c"&nbsp;or&nbsp;raise#&nbsp;Don't&nbsp;do&nbsp;anything:&nbsp;not&nbsp;followed&nbsp;by&nbsp;newline,&nbsp;but&nbsp;by&nbsp;space: ERB.new("a\n<%&nbsp;0&nbsp;-%>&nbsp;\nc",&nbsp;nil,&nbsp;'-').result&nbsp;==&nbsp;"a\nb&nbsp;\nc"&nbsp;or&nbsp;raise#&nbsp;Remove&nbsp;the&nbsp;current&nbsp;line&nbsp;because&nbsp;only&nbsp;whitesapaces:Erubis: :Eruby.new("&nbsp;<%&nbsp;0&nbsp;%>&nbsp;\nb").result&nbsp;==&nbsp;'b'&nbsp;or&nbsp;raise#&nbsp;Same&nbsp;as&nbsp;above,&nbsp;thus&nbsp;useless&nbsp;because&nbsp;longer.Erubis::Eruby.new("&nbsp;<%&nbsp;0&nbsp;-%>&nbsp;\nb"). result&nbsp;==&nbsp;'b'&nbsp;or&nbsp;raise#&nbsp;Don't&nbsp;do&nbsp;anything&nbsp;because&nbsp;line&nbsp;not&nbsp;empty.Erubis::Eruby.new("a&nbsp;<%&nbsp;0&nbsp;%>&nbsp;\nb").result&nbsp;==&nbsp;"a&nbsp;&nbsp;\nb"&nbsp;or&nbsp;raiseErubis: :Eruby.new("&nbsp;<%&nbsp;0&nbsp;%>&nbsp;a\nb").result&nbsp;==&nbsp;"&nbsp;&nbsp;a\nb"&nbsp;or&nbsp;raiseErubis::Eruby.new("&nbsp;<%&nbsp;0&nbsp;-%>&nbsp;a\nb").result&nbsp;==&nbsp;"&nbsp;&nbsp;a\nb"&nbsp;or&nbsp;raise#&nbsp;Don't&nbsp;remove&nbsp; the&nbsp;current&nbsp;line&nbsp;because&nbsp;of&nbsp;`=`:Erubis::Eruby.new("&nbsp;<%=&nbsp;0&nbsp;%>&nbsp;\nb").result&nbsp;==&nbsp;"&nbsp;0&nbsp;\nb"&nbsp;or&nbsp;raise#&nbsp;Remove&nbsp;the&nbsp;current&nbsp;line&nbsp;even&nbsp;with&nbsp;`=` :Erubis::Eruby.new("&nbsp;<%=&nbsp;0&nbsp;-%>&nbsp;\nb").result&nbsp;==&nbsp;"&nbsp;0b"&nbsp;&nbsp;&nbsp;or&nbsp;raise#&nbsp;Remove&nbsp;forward&nbsp;only&nbsp;because&nbsp;of&nbsp;`-`&nbsp;and&nbsp;non&nbsp;space&nbsp;before:Erubis::Eruby. new("a&nbsp;<%=&nbsp;0&nbsp;-%>&nbsp;\nb").result&nbsp;==&nbsp;"a&nbsp;0b"&nbsp;&nbsp;&nbsp;or&nbsp;raise#&nbsp;Don't&nbsp;do&nbsp;anything&nbsp;because&nbsp;non-whitespace&nbsp;forward:Erubis::Eruby.new("&nbsp;<%=&nbsp;0&nbsp;-%>&nbsp;a\nb") .result&nbsp;==&nbsp;"&nbsp;0&nbsp;a\nb"&nbsp;&nbsp;&nbsp;or&nbsp;raise什么%-是否:Erb:在标记之前和之前的换行符之后删除空格,但前提是之前只有空格。埃鲁比人:没用,因为<%- %>是相同的<% %>(没有=),这不能与=这是唯一一个-%可能很有用。所以不要用这个。例子:#&nbsp;RemoveERB.new("a&nbsp;\n&nbsp;&nbsp;<%-&nbsp;0&nbsp;%>&nbsp;b\n&nbsp;c",&nbsp;nil,&nbsp;'-').result&nbsp;==&nbsp;"a&nbsp;\n&nbsp;b\n&nbsp;c"&nbsp;or&nbsp;raise#&nbsp;b&nbsp;is&nbsp;not&nbsp;whitespace:&nbsp;do&nbsp;nothing:ERB.new("a&nbsp;\nb&nbsp;&nbsp; <%-&nbsp;0&nbsp;%>&nbsp;c\n&nbsp;d",&nbsp;nil,&nbsp;'-').result&nbsp;==&nbsp;"a&nbsp;\nb&nbsp;&nbsp;&nbsp;c\n&nbsp;d"&nbsp;or&nbsp;raise什么%-和-%一起做这两种效应的精确组合。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Ruby