前提・実現したいこと
学校に関すアプリの作成を行っています。
user登録の際、クラスの値をactive_hashを用いて入力できるようにしたいと考えました。
発生している問題・エラーメッセージ
最初、active_hashを用いてclass.rbを作成しviewsファイルにcollection_select等用いて表示させようとしたところNoMethodError が出てしましました。
調べたところusersのコントローラーを作成してその中のファイルをいじるとできる。とのことだったのでrails g devise:controllers usersを用いてusersのコントローラーを作成しました。
その後参考にしたページを真似てregistration_controllerないに記載をしたのですがエラーが起こりました
NoMethodError in Users::RegistrationsController#new undefined method `where' for Class:Class Did you mean? when Extracted source (around line #9): 7 8 9 10 11 12 # GET /resource/sign_up def new @results = Class.where('class_id IN(?)', params[:class_id]) super end
該当のソースコード
ruby
1# frozen_string_literal: true 2 3class Users::RegistrationsController < Devise::RegistrationsController 4 # before_action :configure_sign_up_params, only: [:create] 5 # before_action :configure_account_update_params, only: [:update] 6 7 # GET /resource/sign_up 8 def new 9 @results = Class.where('class_id IN(?)', params[:class_id]) 10 11 super 12 end 13 14 # POST /resource 15 # def create 16 # super 17 # end 18 19 # GET /resource/edit 20 # def edit 21 # super 22 # end 23 24 # PUT /resource 25 # def update 26 # super 27 # end 28 29 # DELETE /resource 30 # def destroy 31 # super 32 # end 33 34 # GET /resource/cancel 35 # Forces the session data which is usually expired after sign 36 # in to be expired now. This is useful if the user wants to 37 # cancel oauth signing in/up in the middle of the process, 38 # removing all OAuth session data. 39 # def cancel 40 # super 41 # end 42 43 # protected 44 45 # If you have extra params to permit, append them to the sanitizer. 46 # def configure_sign_up_params 47 # devise_parameter_sanitizer.permit(:sign_up, keys: [:attribute]) 48 # end 49 50 # If you have extra params to permit, append them to the sanitizer. 51 # def configure_account_update_params 52 # devise_parameter_sanitizer.permit(:account_update, keys: [:attribute]) 53 # end 54 55 # The path used after sign up. 56 # def after_sign_up_path_for(resource) 57 # super(resource) 58 # end 59 60 # The path used after sign up for inactive accounts. 61 # def after_inactive_sign_up_path_for(resource) 62 # super(resource) 63 # end 64end 65
試したこと
上記のことを試してとりあえずは終了しています。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー