Does Ruby on Rails have an equivalent to Django's ModelForm?
我已经使用Django大约一年了,以为我会尝试Ruby on Rails来比较它。在Django中,您可以创建一个ModelForm,该ModelForm根据模型中字段的类型自动为其生成html。是否有一个类在Rails中做类似的事情?我知道脚手架会为我的模型生成一个erb文件,但是有办法吗?
<%= auto_form_for @person %>
还是这个?
<%= form_for @person do |f| %>
<% for each @person.fields do | field| %>
<%= auto_field f, field %>
<%end%>
<% end %>
我为我糟糕的ruby代码表示歉意。
我发现了一个名为simple_form的ruby,它与formtastic相似。它允许您定义如下形式:
1 2 3 4 5 | <%= simple_form_for @user do |f| %> <%= f.input :username %> <%= f.input :password %> <%= f.button :submit %> <% end %> |
我已经将它用于几个项目,并且效果很好。如果正在使用该库,它还与twitter引导程序集成。
Formtastic实现了您正在寻找的Django小马魔术,以及其中的大多数变体可能实际上是有用的。在我看来,大多数最终用户应用程序都没有发现"自动表单"和脚手架非常有用(因为它们经常需要进行详细的自定义),但是Formtastic可能会输出足够的语义HTML,以便您以某种方式进行样式设置适用于您的用户。
Rails还允许您编写自己的自定义表单构建器;您也可以扩展Formtastic提供的内容。