我正在尝试使用 mysql2 适配器和 ActiveRecord 从 MySQL 数据库的各个字段中删除空格和回车符:
红宝石 1.9.3p194
活动记录 3.2.8
MySQL 5.5.28
foo = People.find(1)
foo.name => "rJohn Jones"
foo.name.lstrip! => "John Jones"
foo.name => "John Jones"
foo.changes => {} #no changes detected to foo.name???
foo.save => true # but does nothing to database.
如果我这样做:
foo.name = "John Jones"
foo.save => true
People.find(1).name => "John Jones" # this works and saves to database
我已经搜索了所有内容...有什么建议吗?
对模型属性进行就地修改时,不会发生任何赋值,并且模型不知道已进行任何更改。执行此操作的正确方法是重新分配:
foo.name = foo.name.lstrip
这将触发name=
方法并启用脏跟踪。