現在バリデーションメソッドの作成をしているのですが、一箇所だけ解決できず足踏みしています。大体の設計はググって見えてきたのですが、コードの細かい部分が実現できません。ぜひご教授いただければ幸いです。
前提条件(バージョン等)
Rails: 5.2.3
Ruby: 2.5.1
存在するModel(カラム名):
Group(name)
Clone(content, group_name) #group_nameとnameは同じ値です。
実現したい流れ
①Groupモデルのnameカラムを作るため、Groupモデルの新規作成フォームで入力し、DBへ送信。
②Cloneモデルのgroup_nameカラムに、今送信された名前が存在しているかを検索。
]
存在している→入力内容をDBへ保存
存在していない→flashを表示して、DBへの保存を拒否。
自分で考えたこと
rb
1class Group < ApplicationRecord 2 validates :valid_name 3 . 4 . 5 . 6 7 def valid_name 8 fill_in_name = #'フォームで入力した値' 9 group_name = Clone.where(group: fill_in_name) 10 11 if group_name.nil? 12 render 'new' 13 flash[:notice] = 'このグループ名は登録できません' 14 else 15 render 'show' 16 fill_in_name.save 17 end 18 end 19end 20
わからないこと
①上記の'フォームで入力した値'を、モデルでどの様に取得するのか。
入力フォームがあるファイル →**「app/views/groups/new.html.erb」**
入力フォームのコントローラー →**「app/controllers/groups_controller.rb」**
上記内容、是非ご教授いただければ幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/27 02:12