29

有时在 <%%> 中打印更方便。如何在 Rails 中做到这一点?

4

3 回答 3

50

http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-concat

应该是你正在寻找的。

例如使用以下语句concat

<% concat "Output" %>

相当于:

<%= "Output" %>
于 2009-11-15T14:28:55.697 回答
7

在 ERB 中: <% %> 表示这里有 Ruby 代码需要解释。<%= %> 表示输出 ruby​​ 代码,即显示/打印结果。

因此,如果您想在标准 ERB 文件中输出,您似乎需要使用额外的 = 符号。

否则,您可以查看需要较少语法的 ERB 替代方案,.. 或许可以尝试类似 HAML 的方法。http://haml-lang.com/tutorial.html

Example:

# ERB
<strong><%= item.title %></strong>

# HAML
%strong= item.title

是不是更方便?

于 2009-11-15T12:28:50.320 回答
4

erb有两种方法来评估内联 ruby​​ 表达式。<%which 对表达式求值,而which<%=求值并打印。在绑定上下文中没有要打印的全局对象。

正如 Omar 所说,有一个concat方法,它是 ActionView 的一部分。这将做你想要的。

与脚本语言转义不同,erb 没有默认输出。由于 erb 只是一个函数,并且给定模板和绑定将返回一个变量,它递归地返回文本和函数的值。

关于视图中应该允许多少逻辑存在激烈的争论,但尽可能少是大多数人的目标。如果您在视图中放置的代码多于文本,则可能需要考虑重构代码。

于 2009-11-15T12:26:51.993 回答