关于 Rails 魔法的问题:
我在玩 IRB 和污染?方法,然后我只是做了以下事情:
>> User.first.attributes.collect { |column, value| [column, value.tainted?] }
=> [["phone", true], ["state", false], ["persistence_token", true], ["last_login_ip", true], ["country", true], ["login_count", false], ["last_request_at", false], ["id", false], ["forname", true], ["current_login_at", false], ["name", true]]
有谁知道为什么有些参数被污染而有些没有?如果有办法选择应该污染哪一列?
编辑:
感谢您的回答。
@sgtFloyd:我只是尝试手动更新国家/地区。这就是正在发生的事情:
>> u = User.first
>> u.country = "USA"
=> "USA"
>> u.country.tainted?
=> false
>> u.save
=> true
>> u.country.tainted?
=> false
>> u.reload
>> u.country.tainted?
=> true
>> u.country.class
=> String # it's also string in the database
编辑 2:
我删除了 User 模型中的所有内容,并且一些 String 列看起来没有被污染,而有些则......
非常感谢!