Rails 3:form_tag验证

时间:2011-01-10 06:59:12

标签: ruby-on-rails

使用form_tag而不是form_form时可以使用类似ActiveRecord的表单验证(因此未绑定到模型)吗?怎么样?

4 个答案:

答案 0 :(得分:8)

您无法使用form_tag进行验证,因为您的表单未绑定到模型。

但好处是使用Rails 3和ActiveModel可以创建未绑定到数据库的模型。 因此,您可以创建“虚拟”模型,其中包含对搜索表单,联系表单等的验证。

见: https://github.com/novagile/basic_active_model

答案 1 :(得分:1)

由于form_tag不绑定任何模型,因此您必须验证数据并编写代码以自行显示错误。

或者您可以尝试使用验证创建非数据库后端模型,并使用form_for。

答案 2 :(得分:1)

这在Rails 3.0.9中适用于我:

<%= form_tag("/events", :id => "new_event") do %>
  <%= error_messages_for @event %>
  <%= submit_tag "Submit" %>
<% end %>

答案 3 :(得分:0)

只要有一个对象被保存并且你在模型上有某种验证,AR就会返回错误。