好的,所以这个问题与 html.erb 代码的正确语法有关。我想要做的是使用弹出按钮来显示表单。我可以通过 button_tag 函数制作一个按钮,也可以通过 form_tag 函数制作表单,但我无法将一个嵌入到另一个中。我什至不完全确定这是我应该做的事情。我的理解是,当您可以使用 erb 来完成生成页面的工作时,最好的做法是避免使用 html。
无论如何,这是我到目前为止的代码:
<%= button_tag "Remove Friend", :title=>"Remove from Friend List",
:id=>"removeFriend", :class=>"btn btn-default", :rel=>"popover",
:data => {:html=>"true", :placement=>"top", :content=>
"form_tag(\"/friend\", method: \"post\") do
label_tag(:symbolInput, \"Enter Username\")
text_field_tag(:symbolInput)
submit_tag(\"Remove\")
end"}%>
所以它的作用是生成以下 HTML
<button class="btn btn-default" data-content="form_tag("/friend",
method: "post") do
label_tag(:symbolInput, "Enter Username")
text_field_tag(:symbolInput)
submit_tag("Remove")
end" data-html="true" data-placement="top" id="removeFriend"
name="button" rel= "popover" title="Remove from Friend List"
type="submit">Remove Friend</button>
所以本质上它只是将 erb 代码作为文本复制到弹出窗口中。
我也试过用 <%= %> 来框定每一行,但我很不清楚它的语法是什么,或者你什么时候应该这样做。
基本上需要发生的是表单的 erb 必须翻译成 html,然后将其传递到 button_tag 的 :content 部分。
我应该以这种方式这样做,还是有其他方法来完成我想要做的事情?作为 Rails 新手,我不确定最佳实践是什么。
顺便说一句,如果我使用 html 为表单或按钮编写代码并为另一个编写 erb 代码,它可以完美运行,因此可以解决。