在没有<%=的ERB中打印?

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

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

应该是你想要的。

例如以下使用concat语句:

 <% concat "Output" %> 

相当于:

 <%= "Output" %> 

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

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

否则,您可以查看ERB的替代方法,这需要更少的语法,…也许尝试类似HAML的东西。 http://haml-lang.com/tutorial.html

 Example: # ERB <%= item.title %> # HAML %strong= item.title 

那更方便吗?

erb有两种方法来评估内联ruby表达式。 <%用于计算表达式, <%=用于计算和打印。 在绑定上下文中没有要打印的全局对象。

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

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

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