如何在控制器中捕获验证错误

时间:2010-09-09 19:55:09

标签: ruby-on-rails

我有一个这样的模型:

class Schedules < ActiveRecord::Base
  validates_presence_of :scheduleTime
end

我没有视图,因为我的控制器只能用作JSON会话web服务,但我想从控制器中的模型“捕获”任何验证错误(将来会有更多验证),并在我的JSON响应中返回错误消息/代码。

我该怎么做?

谢谢

2 个答案:

答案 0 :(得分:1)

schedule.save(false)将忽略所有验证错误,这不是我想要的。这是我做的,有更好的方法吗?

if schedule.save
  render :json => schedule.id
else
  err_json = "err:"
  schedule.errors.each do |attr_name, message|
    if message == "is invalid"#field is invalid
      case attr_name
        when "from"
          err_json  err_json
end

谢谢

答案 1 :(得分:0)

你应该能够做到

schedule.save(false)
schedule.errors.full_messages