ruby-on-rails – 多态关联插入0,而不是列错误配置为整数时引发
发布时间:2020-12-16 20:24:53 所属栏目:百科 来源:网络整理
导读:这是一个令我痛苦的一段时间,但回想起来应该是显而易见的.我收到错误消息 NoMethodError: undefined method `constantize' for 0:Fixnum 当通过多态关联访问模型时.结果在关联的belongs_to侧的表具有一个整数型列而不是一个字符串. 很容易修复,但是似乎Rails
这是一个令我痛苦的一段时间,但回想起来应该是显而易见的.我收到错误消息
NoMethodError: undefined method `constantize' for 0:Fixnum 当通过多态关联访问模型时.结果在关联的belongs_to侧的表具有一个整数型列而不是一个字符串. 很容易修复,但是似乎Rails应该在这种情况下引发错误 – 而是在类型列中快乐地将行添加为0. 解决方法
这是因为通过请求发送的参数作为字符串通过,因此对于从params设置的整数列,rails调用字符串上的to_i来获取整数.如果它无法解析一个整数(如果字符串不以某些数字开头),那么to_i返回0.这就是Ruby的工作原理.有时轨道会发现这一点并发出警告,但是它不可能知道它必须检查的每一列的名称.例如检查(从控制台)
>> quiz = Quiz.first => <a quiz> >> quiz.user_id = "foo" => "foo" >> quiz.save => true >> quiz.user_id => 0 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |