有没有办法包含<%=%>在另一个<%=%>内没有造成错误?

时间:2016-01-20 07:48:29

标签: ruby-on-rails ruby

我正在编写一个ruby应用程序,在我的.html.erb文件中,我正在尝试创建一个带有占位符的表单from ast import literal_eval with open("your_file.txt") as file_obj: for line in file_obj: lst = literal_eval(line) do_stuff(lst) ,该占位符显示当前用户的名称(从<%=f.text_field :name, class: "form-control" %>检索) 但是,当我把&lt;%=%&gt;放入时,我总是遇到语法错误在另一个&lt;%=%&gt;内。无论如何都允许把&lt;%=%&gt;里面&lt;%=%&gt;?

4 个答案:

答案 0 :(得分:4)

你不需要这样做。你只需使用这样的东西:

<%= f.text_field :name, placeholder: current_user.name %>

答案 1 :(得分:0)

你可以这样做:

<%= f.text_field :name, class: "form-control", placeholder: "#{current_user.name}" %>

<%= f.text_field :name, class: "form-control", placeholder: current_user.name %>

您无需在<%= %>内添加<%= %>

答案 2 :(得分:0)

为了给你一些背景信息(@Chris V是正确的),<%= %>被称为ERB(Embedded Ruby代码):

  

eRuby (Embedded Ruby)是一个将Ruby嵌入到文本文档中的模板系统。它通常用于将Ruby代码嵌入到HTML文档中,类似于ASP,JSP和PHP。

-

与PHP中的<? echo "Something" %>非常相似,ERB代码将括号内的所有内容解析为 ruby​​ 代码 - 这意味着如果您处于可放置的位置<%= %>在另一组括号内,简短的回答是你不需要它们。

您可以将它们全部放在同一组括号中:<%= f.text_field :name, class: "class", placeholder: current_user.name %>

答案 3 :(得分:0)

嵌入式红宝石中无需使用嵌入式红宝石。

您可能正在尝试使用此功能,这会导致错误:

<%=f.text_field :name, :class => "form-control", :placeholder => <%= current_user.name %> %>

可以像这样解决

<%=f.text_field :name, :class => "form-control", :placeholder => current_user.name %>