我是来自PHP背景的Ruby On Rails新手。我有这段代码:
<%=
form_for(@user, :url => new_user_path) do |form|
form.label :name, 'Name: '
form.text_field(:name)
form.label :age, 'Age: '
form.text_field(:age)
end
%>
打印/返回的唯一字符串是最后一个部分/行,因为这就是我理解的ruby块的工作方式。现在在下一个代码中,它将打印出来。
<%= form_for(@user, :url => new_user_path) do |form| %>
<%= form.label :name, 'Name: ' %>
<%= form.text_field(:name) %>
<%= form.label :age, 'Age: ' %>
<%= form.text_field(:age) %>
<% end %>
如何在不使用<%=
和%>
的情况下打印所有标记。我正在寻找这样的,因为我来自PHP,如果能,它可以使代码更具可读性和整洁性。或许也许我可能做错了?我已经尝试构建字符串,然后将变量放在块的末尾以便循环返回,如下所示:
<%=
form_build = String.new
form_for(@user, :url => new_user_path) do |form|
form_build += form.label :name, 'Name: '
form_build += form.text_field(:name)
form_build += form.label :age, 'Age: '
form_build += form.text_field(:age)
form_build.to_s
end
%>
但是打印的字符串被包含在输出中的html注释代码(<!--
-->
)中。
答案 0 :(得分:0)
您必须了解视图中Rails works and is using templating markup的方式。
<%= var %>
将输出变量
<% Ruby code %>
是ruby代码的包装器。它不会输出任何东西。
上面的表单代码输出标记,因此您需要每一行。我不确定是否有办法做你想做的事情,但对于已经运作良好的事情来说,这听起来很麻烦。
来自PHP,只是“保持冷静,相信力量”!