Ruby on Rails是否具有与Django的ModelForm等效的功能?

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提供的内容。