ruby-on-rails - 验证 Rails 中的参数类型

标签 ruby-on-rails ruby-on-rails-4 params

我一直在四处寻找,我想知道我是否做错了什么。只是为了仔细检查,我会问你们!

所以我收到了 params在 Rails Controller 中。一 key, value对是 :status => true/false .但是,当我尝试发布 status 时,我发现作为一个字符串
:status => "THIS IS NOT A BOOLEAN"
并在我的 Controller 中创建我的对象 :status我的对象的属性变为 false .

因此,rails 中是否有任何干净的方法来验证我的 :status对应于 bool 值?

谢谢!

最佳答案

这个非常奇怪的方法会成功

def is_boolean?(item)
  !!item == item
end

params[:status] = 'some string'
is_boolean?(params[:status])
# => false

params[:status] = true
is_boolean?(params[:status])
# => true

稍微更直观的版本是
def is_boolean?(item)
  item == false || item == true
end

关于ruby-on-rails - 验证 Rails 中的参数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25100119/

相关文章:

ruby-on-rails - 在 Rails 中引用相同类型的装置

ruby-on-rails - pg_dump 服务器版本不匹配

ruby-on-rails - 如何根据日期作为数据库中的列的确切年份过滤用户?

ruby-on-rails - 跳过 ActiveAdmin 中特定成员操作的身份验证

ruby-on-rails - 参数缺失或值为空 : user rails 4

ruby-on-rails - 带有 Remote 的Rails4 Form-处理错误消息

ruby-on-rails - Ruby on Rails - 测试时的 TDD 测试错误

grails - 无法设置只读属性:params

ruby-on-rails-3 - 如何在 Ruby on Rails 中将 URL 参数传递给根 [在 routes.rb 中]

ruby-on-rails - 如何绕过 default_url_options?