Ruby on Rails是否具有与Django的ModelForm相同的功能?

时间:2011-02-13 07:35:48

标签: ruby-on-rails django django-forms

我已经使用Django大约一年了,并且我认为我会尝试Ruby on Rails来看看它是如何比较的。在Django中,您可以创建一个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 %>

我为我糟糕的红宝石代码道歉。

2 个答案:

答案 0 :(得分:2)

Formtastic实现了你正在寻找的Django小马魔法,以及其中可能实际有用的大多数变种。在我看来,大多数最终用户应用程序找不到“自动表单”和脚手架非常有用(因为它们经常需要进行详细定制),但Formtastic可能会输出足够的语义HTML,以便您以某种方式进行样式化这适用于您的用户。

Rails还允许您编写自己的自定义表单构建器;你也可以扩展Formtastic提供的那些。

答案 1 :(得分:2)

我找到了一个名为simple_form的宝石,它类似于formtastic。它允许您定义这样的表单:

<%= simple_form_for @user do |f| %>
  <%= f.input :username %>
  <%= f.input :password %>
  <%= f.button :submit %>
<% end %>

我已经将它用于一些项目,而且效果很好。如果您使用该库,它还与twitter bootstrap集成。