Rails解析活动记录验证错误

时间:2013-06-07 13:31:18

标签: ruby-on-rails activerecord

我的控制器中有以下内容:

def create
    equipment = Equipment.create(:name => params[:name])
    errors = equipment.errors.messages
    puts "equipment errors: " + errors.inspect
    respond_to do |format|
      format.json { render :json => @equipment }
    end
end

'puts'的回应是:

equipment errors: {:name=>["has already been taken"]}

如何解析错误并收到消息?

由于

2 个答案:

答案 0 :(得分:0)

它只是一个哈希。使用

访问消息

errors[:name].first

这从散列中获取:name键的值,该散列是一个包含一个元素的数组,然后返回数组的第一个元素的值,即错误消息。

如果出现更多错误,请使用Array函数访问所有错误并正确显示它们。

答案 1 :(得分:0)

equipment.errors.full_messages.join(", ")

这应该会给你“名字已被采取”。它连接所有错误。