문제

I'm able to run both and it returns the same vale:

user = User.new(name:'John')
user.attributes['first_name']
=> 'John'
user.read_attribute('first_name')
=> 'John'

Is one more performant than the other? Are there cases where I would use one over the other?

Thanks!

도움이 되었습니까?

해결책

attributes returns a hash of all attributes for the user and ['first_name'] just accesses the specified parameter of the hash, whereas read_attribute just returns the single parameter asked for. You don't really need either of those methods to access the name as this can be done which makes the code a lot cleaner:

user = User.new(name:'John')
user.name
=> 'John'
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top