我想知道您是否必须将某些查询字符串或post params转换或转换为特定数据类型才能在控制器中使用它们。例如,如果我将categoryid(数据库中的一个整数)查询字符串参数传递给控制器,我是否必须使用to_i
方法将其转换为我的控制器中的整数,或者Ruby是否自动执行此操作?另外,如何使用rails控制台测试查询字符串参数值及其数据类型?在测试我的应用时,我无法通过查询字符串或发布参数来说明发生了什么。
答案 0 :(得分:2)
User.find(1)
User.find('1')
对于更复杂的查询也是如此:
User.where({ id: '1' })
User.where('id = ?', '1')
参数以字符串形式传递给控制器,这意味着您只需拨打User.find(params[:id])
即可,而无需拨打params[:id].to_i
。
如果要在Rails控制台中检查变量的类,则可以在对象上调用.class
。例如:
[1] pry(main)> "1".class
=> String
[2] pry(main)> 1.class
=> Fixnum
我希望有所帮助。