在Rails API中显示不带括号的错误消息

时间:2019-02-13 09:00:21

标签: ruby-on-rails-5

LTRIM()

user_serializer.rb

render( json: UserSerializer.response_error(current_user.errors.messages).to_json)

它给出如下响应:

class UserSerializer < ActiveModel::Serializer
  attributes :id, :name, :email

  def self.response_error(error)
     error
  end
end

但是我需要显示

[
"Password can't be blank"
]

我尝试使用“ full_messages”,但结果相同

1 个答案:

答案 0 :(得分:1)

def self.response_error(error)
  error.join(', ')
end

您可以这样做。问题是它必须是一个数组。由于可能存在多个错误。

[
  "Email can't be blank",
  "Password can't be blank"
]

这将是上面代码的结果:

"Email can't be blank, Password can't be blank"

通常,无论出现一个或多个错误,数组都更易于在前端使用。

当您完全确定只有此错误时,您也可以这样做 error.join('')来获取字符串。