【问题标题】:Rails Parse Active record validation errorRails Parse Active 记录验证错误
【发布时间】:2013-06-07 13:31:17
【问题描述】:

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

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"]}

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

谢谢

【问题讨论】:

  • 另外 - 你的行 format.json {render :json => @equipment} 将无法工作,除非你将 equipment = Equipment.create -> @equipment = Equipment.create 设为本地,但引用实例变量

标签: ruby-on-rails activerecord


【解决方案1】:
equipment.errors.full_messages.join(", ")

这应该会给您“姓名已被占用”。它连接所有错误。

【讨论】:

    【解决方案2】:

    它只是一个哈希。使用

    访问消息

    errors[:name].first

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多