私は単純なRoRアプリケーションを作成しようとしています。私はユーザーカテゴリの列挙型に問題を抱えています。列挙型フィールドをレールで更新可能にするにはどうすればいいですか?
class User < ApplicationRecord
before_save :name_to_sentence_case
extend Enumerize
enumerize :category, in: [:admin, :staff, :customer]
VALID_NAME_REGEX = /\A[a-z]+\z/i
VALID_PHONE_REGEX = /\A[0-9]+\z/
validates :first_name, presence: true, length: {maximum: 20}, format: {with: VALID_NAME_REGEX}
validates :last_name, presence: true, length: {maximum: 30}, format: {with: VALID_NAME_REGEX}
validates :category, presence: true
validates :password, presence: true, length: {minimum: 6}
validates :phone, presence: true, length: {maximum: 15}, uniqueness: true, format: {with: VALID_PHONE_REGEX}
has_secure_password
def name_to_sentence_case
self.first_name = first_name.humanize
self.last_name = last_name.humanize
end
end
私は指定されたカテゴリに基づいてレールコンソールからユーザーと設定カテゴリを作成することができ、システムは、他のカテゴリを持つユーザーを作成することはできません。しかし、正しいカテゴリがあっても、既存のユーザーのカテゴリを更新することはできません。
更新データは正確に何を送信していますか?それは文字列かその配列内の数字ですか? –
@RockwellRiceこれは文字列です。 '文字列'または '文字列'。これは、ユーザーを作成するためではなく、更新するためではない –
私はあなたがこのために必要な数字だと思っています。少なくとも、それは列挙型の列挙型で作業するときに常に使用するものです。フィールドはデータベースの整数フィールドですか? –