【发布时间】:2012-02-11 13:49:17
【问题描述】:
我有一个由模型对象生成的表单。
<%= form_for(@pages) do |f| %>
<p>
<%= f.label :title %><br />
<%= f.text_field :title %>
</p>
<% end %>
这里是控制器方法:
def new
@pages = Page.new
respond_to do |format|
format.html # new.html.erb
format.json { render :json => @post }
end
end
这是型号代码:
class Page < ActiveRecord::Base
validates :title, :presence => true
end
现在,我如何在提交时验证表单。(我知道提交按钮不存在,我稍后会添加它)。我在表格中使用了<%= f.error_messages %>,但它给了我错误:
NoMethodError in Pages#new
Showing C:/rorapp/app/views/pages/_form.html.erb where line #2 raised:
undefined method `error_messages' for #<ActionView::Helpers::FormBuilder:0x49b9ca8>
Extracted source (around line #2):
1: <%= form_for(@pages) do |f| %>
2: <%= f.error_messages %>
3: <p>
4: <%= f.label :title %><br />
5: <%= f.text_field :title %>
Trace of template inclusion: app/views/pages/new.html.erb
Rails.root: C:/rorapp
Application Trace | Framework Trace | Full Trace
app/views/pages/_form.html.erb:2:in `block in _app_views_pages__form_html_erb__975660997_39217440'
app/views/pages/_form.html.erb:1:in `_app_views_pages__form_html_erb__975660997_39217440'
app/views/pages/new.html.erb:2:in `_app_views_pages_new_html_erb___256256638_47476836'
app/controllers/pages_controller.rb:11:in `new'
Request
Parameters:
{"title"=>"",
"author"=>"",
"email"=>"",
"body"=>"",
"reference"=>"Google"}
Show session dump
Show env dump
Response
Headers:
None
如何验证它?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1