我正在开发一个 Sinatra 应用程序,并想编写自己的表单助手。在我的 erb 文件中,我想使用 rails 2.3 风格的语法并将一个块传递给 form_helper 方法:
<% form_helper 'action' do |f| %>
<%= f.label 'name' %>
<%= f.field 'name' %>
<%= f.button 'name' %>
<% end %>
然后在我的简化表单助手中,我可以创建一个 FormBuilder 类并将方法产生给 erb 块,如下所示:
module ViewHelpers
class FormBuilder
def label(name)
name
end
def field(name)
name
end
def button(name)
name
end
end
def form_helper(action)
form = FormBuilder.new
yield(form)
end
end
我不明白的是如何输出周围的<form></form>
标签。有没有办法只在第一个和最后一个<%= f.___ %>
标签上附加文本?