Rails:验证没有强制执行,手动调用?

时间:2011-04-28 08:21:01

标签: ruby-on-rails validation

我检查

validates :group_id, :presence => true

在我的模型“项目”中。然而,当我创建一个没有group_id的项目时,我没有得到验证错误。如果我尝试

p = Project(:name => "Test")
p.save

rails控制台返回false,保存!它告诉我group_id的验证失败了。因此,验证以某种方式在save方法上执行,但它在我的应用程序中默认不是。我是否必须手动

if @project.save == true
...
end

或我的控制器中有什么东西?

谢谢你, 乙

1 个答案:

答案 0 :(得分:3)

您可以查看@ project.valid吗?在保存之前。

  def signup
    if request.post?
      @user_data = UserData.new(:login => params[:user], :password => params[:password])
      if @user_data.valid?
        if @user_data.save
          session[:cuser] = UserData.authenticate(@user_data.login, @user_data.password).login
          redirect_to(:controller=> 'sync', :action=> 'all')
          return
        end
      else
        @error_on_signup = true
      end
    end