小编And*_*ang的帖子

除了rails活动记录验证中的错误消息之外,还有办法返回错误代码吗?

在rails activerecord验证中,通常如果验证失败,它将在模型的errors属性中添加错误消息,但是我们的客户要求除了错误消息之外还要返回错误代码,例如,我们有一个Bill模型,它具有一个msisdn属性,如果msisdn为null,则错误代码为101,如果msisdn没有投诉MSISDN格式,则错误代码为102,当客户端通过REST接口提交请求时,如果验证失败,我们应该返回一个像json的对象

bill: {
    error_code: 101,
    error_message: "msisdn can't be null"
}
Run Code Online (Sandbox Code Playgroud)

除了错误消息之外,有没有办法告诉activerecord生成错误代码?非常感谢.

validation activerecord ruby-on-rails error-code

13
推荐指数
2
解决办法
2443
查看次数

应用程序从 Rails 5.2 升级到 6.0 后运行 rspec 时出现 PG::ConnectionBad(连接已关闭)

我尝试将我的应用程序从 Rails 5.2 升级到 6.0,升级后运行时rspec会引发错误PG::ConnectionBad: connection is closed

ActiveRecord::Migration.maintain_test_schema!该错误是由in 的表达式引起的rails_helper.rb,错误如下,

root@00de976cbbd4:/app# rspec

An error occurred while loading rails_helper.
Failure/Error: ActiveRecord::Migration.maintain_test_schema!

PG::ConnectionBad:
  connection is closed
# /usr/local/bundle/gems/activerecord-6.0.3.5/lib/active_record/connection_adapters/postgresql/quoting.rb:21:in `escape_string'
# /usr/local/bundle/gems/activerecord-6.0.3.5/lib/active_record/connection_adapters/postgresql/quoting.rb:21:in `quote_string'
# /usr/local/bundle/gems/activerecord-6.0.3.5/lib/active_record/connection_adapters/abstract/quoting.rb:220:in `_quote'
# /usr/local/bundle/gems/activerecord-6.0.3.5/lib/active_record/connection_adapters/postgresql/quoting.rb:144:in `_quote'
# /usr/local/bundle/gems/activerecord-6.0.3.5/lib/active_record/connection_adapters/abstract/quoting.rb:18:in `quote'
# /usr/local/bundle/gems/activerecord-6.0.3.5/lib/active_record/connection_adapters/postgresql/schema_statements.rb:750:in `quoted_scope'
# /usr/local/bundle/gems/activerecord-6.0.3.5/lib/active_record/connection_adapters/postgresql/schema_statements.rb:727:in `data_source_sql'
# /usr/local/bundle/gems/activerecord-6.0.3.5/lib/active_record/connection_adapters/abstract/schema_statements.rb:62:in `table_exists?'
# /usr/local/bundle/gems/activerecord-6.0.3.5/lib/active_record/internal_metadata.rb:32:in `table_exists?'
# /usr/local/bundle/gems/activerecord-6.0.3.5/lib/active_record/tasks/database_tasks.rb:347:in `schema_up_to_date?'
# /usr/local/bundle/gems/activerecord-6.0.3.5/lib/active_record/migration.rb:594:in `block in load_schema_if_pending!'
# /usr/local/bundle/gems/activerecord-6.0.3.5/lib/active_record/migration.rb:593:in `all?'
# /usr/local/bundle/gems/activerecord-6.0.3.5/lib/active_record/migration.rb:593:in `load_schema_if_pending!'
# /usr/local/bundle/gems/activerecord-6.0.3.5/lib/active_record/migration.rb:614:in `block in maintain_test_schema!'
# /usr/local/bundle/gems/activerecord-6.0.3.5/lib/active_record/migration.rb:867:in `suppress_messages' …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails-6

4
推荐指数
1
解决办法
851
查看次数