У меня есть модуль:
# frozen_string_literal: true
# will strip whitespace of certain attributes
module StripWhitespace
extend ActiveSupport::Concern
included do
before_save :strip_whitespace
end
# Strips white space from these user attributes
def strip_whitespace(attrs)
attrs.each do |attr|
self[attr] = send(attr)&.strip
end
end
end
, и я в настоящее время включаю его в модель:
class User < ApplicationRecord
include StripWhitespace
end
Однако я хочу иметь возможность передать аргумент в before_save
крючок. Примерно так:
# user.rb
COLS_TO_STRIP = %i[first_name last_name location phone city]
before_save strip_whitespace(COLS_TO_STRIP)
В любом случае это не работает. Будучи новичком в ruby, я не уверен, правильно ли я это делаю. Должен ли я делать это в модели? Или модуль? Правильно ли настроен мой модуль?