我正在编写一个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;?
答案 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 %>