Pergunta

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!

Foi útil?

Solução

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'
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top