【发布时间】:2023-12-18 22:18:02
【问题描述】:
我正在开发一个 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.___ %> 标签上附加文本?
【问题讨论】:
-
我建议使用Padrino's form helpers and/or builders 而不是自己滚动。 gem 可作为独立插件使用,可与任何 Ruby 框架一起使用。
-
Padrino,或者使用它的一部分是一个非常好的建议,我可能会走这条路。我主要是想确保我了解事情是如何结合在一起的。
标签: ruby sinatra block erb view-helpers