zubin
(zubin)
1
Hello,
I’d like to propose this feature:
Like attr_reader
, I’d like to see a store_reader
AR class method which adds store getter methods.
Why? Consider this:
class User < ActiveRecord::Base
store_accessor :data, :name
end
user = User.new(name: “John Doe”, data: {fav_tv_show: “Twin Peaks”})
user.name #=> nil
user.data #=> {“fav_tv_show” => “Twin Peaks”}
``
To avoid this, I’d like the opportunity to force writing without the store setter method while providing the convenience store getter method.
Would this addition be considered? If so, I’m happy to work on it.
1 Like
You could write this with store_accessor
already:
def self.store_reader(store_attribute, *keys)
store_accessor(store_attribute, *keys)
keys.each { |k| undef_method(“#{k}=") }
end
Or swap in “private” for “undef_method” if you want to use the setters internally.
—Matt Jones
zubin
(zubin)
3
That’s definitely an option (nice two-liner btw) but I’d rather not have to do that in every app (I’m using JSONB columns more and more these days).
Since there’s attr_accessor
and attr_reader
, is it not reasonable to have store_reader
alongside store_accessor
?
1 Like