Prefer using self over write attribute
このページは日本語には対応しておりません。随時翻訳に取り組んでいます。
翻訳に関してご質問やご意見ございましたら、
お気軽にご連絡ください。
ID: rails-best-practices/write-attribute
Language: Ruby
Severity: Notice
Category: Best Practices
Description
This rule promotes the use of self
over the ActiveRecord method write_attribute
. This rule is important because using self
to assign attributes is more idiomatic in Ruby and leads to cleaner, more readable code.
The write_attribute
method in Rails is not recommended for regular use. It bypasses the normal attribute assignment process, skipping validations and callbacks. This can result in unexpected behavior and difficult-to-debug errors.
To avoid violating this rule, simply use self[:attribute] = value
instead of write_attribute(:attribute, value)
. For example, you can replace write_attribute(:price, 42)
with self[:price] = 42
.
Non-Compliant Code Examples
class Product < ApplicationRecord
def price
write_attribute(:price, 42)
end
end
Compliant Code Examples
class Product < ApplicationRecord
def price
self(:price, 42)
end
end