环境:Rails 2.3.11 w / MySQL 5.0
这是我的幻灯片模型:
class Slideshow < ActiveRecord::Base
validates_presence_of :title, :description
end
使用控制台,如果我跑:
Slideshow.new(:title => "", :description => "").save!
它返回:
Validation failed: Title can't be blank, Description can't be blank
这是正确的。
但是,当我向创建操作提交空白HTML表单时:
def create
@slideshow = Slideshow.new(params[:slideshow])
if @slideshow.save
redirect_to(...)
else
render(:action => 'new')
end
end
只有:title
字段未通过验证。我已经证实了参数中传递的内容是:
Parameters: {"commit"=>"Submit", "slideshow"=>{"title"=>"", "description"=>""}, "action"=>"create", "controller"=>"manage/slideshows"}
为什么描述字段在此处未通过验证?
感谢。
答案 0 :(得分:1)
试试这个:
validates_length_of :description
了解更多详情...... http://apidock.com/rails/ActiveRecord/Validations/ClassMethods/validates_length_of
答案 1 :(得分:0)
当您向创建操作提交空白HTML表单时,它应该进入创建操作,而您的表单应该包含以下行:
&lt;%= f.error_messages%&gt;
向您显示错误。
答案 2 :(得分:0)
这结果是一个语法问题。它发生在测试服务器上,其中有两个名称非常相似的模型(一个是另一个的更新版本)。在测试期间我使用了错误的一个。我为任何不必要的头疼而道歉:)