質問編集履歴

1

投稿を削除しました

2022/10/18 01:30

投稿

Mr.potatohead
Mr.potatohead

スコア17

test CHANGED
File without changes
test CHANGED
@@ -1,36 +1 @@
1
- ### 環境
2
- rails ver6.1.4
3
- ruby ver3.0.2
4
-
5
- ### 実現したいこと
6
- ユーザー登録の際にGitHubに存在するユーザ名のみ登録できるようにしたいです。
7
- またカスタムバリデータによって弾かれた際にGitHubに存在するユーザー名しか登録できません」というフラッシュメッセージを表示したいです
8
-
9
-
10
- ### 該当のソースコード
11
-
12
- ```app/validations/name_validator.rb
13
- require 'net/http'
14
- class NameValidator < ActiveModel::Validator
15
- def validate(record)
16
- uri = URI.parse("https://github.com/#{record.name}")
17
- response = Net::HTTP.get_response(uri)
18
- if response.code == "404"
19
- record.errors[:name] << 'GitHubに存在するユーザー名しか登録できません'
20
- end
21
- end
22
- end
23
- ```
24
-
25
- ```app/model/profile.rb
26
- class Profile < ApplicationRecord
27
- belongs_to :user
28
- include ActiveModel::Validations
1
+ 投稿者(Mr.PotatoHead)の諸事情により削除しました。
29
- validates_with NameValidator
30
- validates :name, presence: true
31
- end
32
- ```
33
- ### 現在理解していること
34
- 実際にGitHubに存在しないユーザ名で登録しようとすると登録できなく、存在するユーザ名で登録すると異常なく登録,ログインできるのでちゃんとカスタムバリデータとしては機能しているのを確認済みです。しかしフラッシュメッセージの```GitHubに存在するユーザー名しか登録できません```が表示されない状況です。
35
-
36
-