Prefer using self over write attribute

Cette page n'est pas encore disponible en français, sa traduction est en cours.
Si vous avez des questions ou des retours sur notre projet de traduction actuel, n'hésitez pas à nous contacter.

Metadata

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
https://static.datadoghq.com/static/images/logos/github_avatar.svg https://static.datadoghq.com/static/images/logos/vscode_avatar.svg jetbrains

Seamless integrations. Try Datadog Code Analysis

PREVIEWING: may/unit-testing