我的控制器中有以下内容:
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"]}
如何解析错误并收到消息?
由于
答案 0 :(得分:0)
它只是一个哈希。使用
访问消息 errors[:name].first
这从散列中获取:name
键的值,该散列是一个包含一个元素的数组,然后返回数组的第一个元素的值,即错误消息。
如果出现更多错误,请使用Array函数访问所有错误并正确显示它们。
答案 1 :(得分:0)
equipment.errors.full_messages.join(", ")
这应该会给你“名字已被采取”。它连接所有错误。