質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

1回答

1815閲覧

カスタムバリデータでエラーメッセージが表示されないです

Mr.potatohead

総合スコア17

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2022/08/14 02:55

編集2022/10/18 01:30

投稿者(Mr.PotatoHead)の諸事情により削除しました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

record.errors[:name] << 'GitHubに存在するユーザー名しか登録できません'
って書き方で良いのかな。どこかに例ありましたか?
record.errors.add(:name, message:'GitHubに存在するユーザー名しか登録できません')
だとどうでしょう

投稿2022/08/14 03:08

winterboum

総合スコア23347

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Mr.potatohead

2022/08/14 03:14

返信ありがとうございます。 さまざまなサイトの方法を試しているため```record.errors[:name] << 'GitHubに存在するユーザー名しか登録できません'```は一例ですね. ```record.errors.add(:name, message:'GitHubに存在するユーザー名しか登録できません')```も試したのですが依然表示されないままです。
winterboum

2022/08/14 03:45

record.errors.add した直後に record.errors.messages の内容をとって載せてください
winterboum

2022/08/14 05:25

こういうの画像はやめてください。検索もコピペもできない。 record.errors.add した直後にrecord.errors.messages です user.record.errors.messages ではないです
Mr.potatohead

2022/08/14 05:32

申し訳ありません! [35] pry(main)> record.errors.add NameError: undefined local variable or method `record' for main:Object from (pry):35:in `__pry__' [36] pry(main)> record.errors.messages NameError: undefined local variable or method `record' for main:Object from (pry):36:in `__pry__' このようになりました。
winterboum

2022/08/14 09:57

それ、record.errors.add した直後 じゃないでしょ
Mr.potatohead

2022/08/14 10:28

直後というのはどういう感じのことですか?
winterboum

2022/08/14 12:36

ああ def validate(record) uri = URI.parse("https://github.com/#{record.name}") response = Net::HTTP.get_response(uri) if response.code == "404" record.errors.add(:name, message:'GitHubに存在するユーザー名しか登録できません') end end のながれのなかで、record.errors.add の直後、endの前で record.errors.messages です
Mr.potatohead

2022/08/15 01:50 編集

class NameValidator < ActiveModel::Validator def validate(record) uri = URI.parse("https://github.com/#{record.name}") response = Net::HTTP.get_response(uri) if response.code == "404" record.errors.add(:name, message: 'GitHubに存在するユーザー名しか登録できません' record.errors.messages end end end => :validate このように表示されました。
winterboum

2022/08/15 13:37

実際にvalidationに掛かったときの record.errors.messages これの値をみたいのですが。
Mr.potatohead

2022/08/16 07:52

ごめんなさい。 自分のフォルダの確認不足でした。 sign_up_form.rbをすでに作成していてその中に include ActiveModel::Validations validates_with NameValidator と記述することで解決しました。 丁寧に回答いただきありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問