0

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

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

“看跌”的回应是:

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

如何解析错误并获取消息?

谢谢

4

2 回答 2

0

它只是一个哈希。访问消息

errors[:name].first

:name从哈希中获取键的值,这是一个有一个元素的数组,然后返回数组的第一个元素的值,也就是错误信息。

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

于 2013-06-07T13:37:05.320 回答
0
equipment.errors.full_messages.join(", ")

这应该给你“名字已经被占用”。它连接所有错误。

于 2013-06-07T13:39:31.417 回答