Rails |批量分配不会抛出任何错误,也不会复制模型的 ID
Rails | Mass assignment is not throwing any error and copying id of models also
最初,当我尝试这样做时:
ans = Book.new Book.last.attributes
它曾经给我一个警告:
WARNING: Can't mass-assign protected attributes for Book: id
并且创建的没有id的新对象被复制。
但是现在当我从 rails 4.2.8 升级到 4.2.10,并且还升级了我的其他 gem。我没有收到任何警告,而且 id 也是从属性中复制的。我想创建一个新对象,id 为 nil。
为什么批量分配安全行为会随着 gem 升级而改变?我没有添加任何新的 gem.
你可以做...
ans = Book.new Book.last.dup.attributes
这将复制这本书但将 id 设置为 nil。
我必须删除或降级受保护属性 gem 到以前的版本。我们使用它来允许未经允许的参数,但在新版本中它甚至允许 id 和其他受保护的属性也可以复制。
最初,当我尝试这样做时:
ans = Book.new Book.last.attributes
它曾经给我一个警告:
WARNING: Can't mass-assign protected attributes for Book: id
并且创建的没有id的新对象被复制。
但是现在当我从 rails 4.2.8 升级到 4.2.10,并且还升级了我的其他 gem。我没有收到任何警告,而且 id 也是从属性中复制的。我想创建一个新对象,id 为 nil。
为什么批量分配安全行为会随着 gem 升级而改变?我没有添加任何新的 gem.
你可以做...
ans = Book.new Book.last.dup.attributes
这将复制这本书但将 id 设置为 nil。
我必须删除或降级受保护属性 gem 到以前的版本。我们使用它来允许未经允许的参数,但在新版本中它甚至允许 id 和其他受保护的属性也可以复制。