I would also like to see a noisy failure on attempted update, or the option of one.
A good approach would be to add an option to the attr_readonly call to support raise on attempted update. The default behavior could be switched in a later release if desired. On Sat, Apr 22, 2017 at 14:23 Chris Stadler <chrisstad...@gmail.com> wrote: > Currently, updates to read-only attributes fail silently. For example: > > class ReadOnly < ActiveRecord::Base > attr_readonly :name > end > > record = ReadOnly.create(name: "original") > record.update(name: "changed") # true > record.reload.name # "original" > > > This behavior is highly unexpected to me because it provides no feedback > that the updates were not persisted, a significant exception to the normal > behavior of #update and #save. > > Raising an error whenever an update is attempted, or treating > attr_readonly as a validation both seem like good options to me. I've > attempted to implement the former (mostly because it was simpler) here: > https://github.com/CJStadler/rails/commit/3fe8a29429a3dade8877513db65385 > 1b7a43333d. > > I realize this would be a breaking change and can't be undertaken lightly, > but the current behavior feels like a big "gotcha", and one that's > difficult to debug. > > Thanks! > Chris Stadler > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Core" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to rubyonrails-core+unsubscr...@googlegroups.com. > To post to this group, send email to rubyonrails-core@googlegroups.com. > Visit this group at https://groups.google.com/group/rubyonrails-core. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-core+unsubscr...@googlegroups.com. To post to this group, send email to rubyonrails-core@googlegroups.com. Visit this group at https://groups.google.com/group/rubyonrails-core. For more options, visit https://groups.google.com/d/optout.