Hel*_*rld 5 ruby-on-rails mongodb mongoid ruby-on-rails-3
我正在使用带有mongoid 2的Rails 3并且有一个关于mongoid验证的简单问题.
if @forum.topics.create!(name: params[:topic][:name])
# success, do something
else
#should handle errors but doesn't
render 'new'
end
Run Code Online (Sandbox Code Playgroud)
如果我使用.create!方法,它正确地在mongoid模型类上运行验证,但它没有到达else块来显示错误.相反,它返回一个rails错误页面说...
Mongoid :: Errors :: TopicsController中的验证#create
验证失败 - 名称不能为空.
这很好,但是如何在视图中显示它而不是获得丑陋的rails错误消息页面?
试试这种方式:
new_topic = @forum.topics.new(name: params[:topic][:name])
if new_topic.save
# success, do something
else
render 'new', errors: new_topic.errors.full_messages
end
Run Code Online (Sandbox Code Playgroud)
用这种方式你将得到一个局部变量errors,它是一个格式如下:
new_topic.errors.full_messages # => ["\"Name\" can't be blank"]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3773 次 |
| 最近记录: |