我正在研究一個Sinatra應用程序,並希望編寫自己的表單助手。在我的ERB文件我想用鋼軌2.3風格的語法和塊傳遞給form_helper方法:如何在沒有actionview的情況下實現form_tag helpers?
<% 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的表單助手和/或構建器**](http://www.padrinorb.com/guides/application-helpers#form-he lpers)而不是滾動你自己的。該gem可作爲獨立插件使用,可用於任何Ruby框架。 –
帕德里諾,或使用它的一部分是一個非常好的建議,我可能還沒有走這條路。我主要想確保我理解事情的一致性。 – llnathanll