This is only relevant for Rails 2 and Rails 3.
When creating an ActiveRecord with .new, .create or create!, you cannot set the ID attribute (note: When using Machinist's
.make
Show archive.org snapshot
you can).
This is because even when you are not using attr_protected or attr_accessible, some attributes are always protected. These attributes are #id and #type.
If you want to allow setting #id on .new, .create or create! you can include the attached module in order to whitelist #id on a model of your choice like this:
class MyModel < ActiveRecord::Base
include AllowSettingIdOnCreate
end
Note that your controllers should always whitelist the attributes they set on model records.
Posted by Henning Koch to makandra dev (2013-02-11 18:24)