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

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

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

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

1回答

592閲覧

【rails】gem 'active_hash'で作った値をdeviseで使用したい

kaori_oka

総合スコア176

Devise

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2020/01/10 04:52

編集2020/01/10 05:08

前提・実現したいこと

deviseにてユーザー登録、管理を実装中です。
ユーザー登録の際に、都道府県を登録させたいと思ってまして、
active_hashを使用して都道府県各種を書いておき、
それをdeviseでのユーザー登録の際に使用したいと思っています。

発生している問題・エラーメッセージ

deviseの登録にて別のテーブルの情報を追加するには、
controllerに値を追加すればいいのかな?とおもったのですが
どのファイルをいじればいいのかというがわからず。
下記のファイルを調整すればいいんでしょうか??
慣れないファイルなので、ビビってます。

/app/controllers/users/registrations_controller.rb # frozen_string_literal: true class Users::RegistrationsController < Devise::RegistrationsController # before_action :configure_sign_up_params, only: [:create] # before_action :configure_account_update_params, only: [:update] # GET /resource/sign_up def new super @results = Address.where('prefecture_id IN(?)', params[:prefecture_id]) end # POST /resource # def create # super # end # GET /resource/edit # def edit # super # end # PUT /resource # def update # super # end # DELETE /resource # def destroy # super # end # GET /resource/cancel # Forces the session data which is usually expired after sign # in to be expired now. This is useful if the user wants to # cancel oauth signing in/up in the middle of the process, # removing all OAuth session data. # def cancel # super # end # protected # If you have extra params to permit, append them to the sanitizer. # def configure_sign_up_params # devise_parameter_sanitizer.permit(:sign_up, keys: [:attribute]) # end # If you have extra params to permit, append them to the sanitizer. # def configure_account_update_params # devise_parameter_sanitizer.permit(:account_update, keys: [:attribute]) # end # The path used after sign up. # def after_sign_up_path_for(resource) # super(resource) # end # The path used after sign up for inactive accounts. # def after_inactive_sign_up_path_for(resource) # super(resource) # end end

試したこと

Railsのgem 'active_hash'で都道府県データを作成してみた
上記の記事をみてアクティブハッシュの設定は完了済みです!

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

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

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

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

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

guest

回答1

0

下記のファイルを調整すればいいんでしょうか??

編集対象はそのファイルで間違いないです。

ただし、super を呼び出した時点で view のレンダリングが実行されるため、super の後にインスタンス変数を定義しても、それを view で使用できないことに注意してください。

自前の処理 → super の順に書くのがオススメです。

rb

1 # GET /resource/sign_up 2 def new 3 @results = Address.where('prefecture_id IN(?)', params[:prefecture_id]) 4 5 super # super の中で "render :new" 的な処理が行われているため、最後に super する。 6 end

投稿2020/01/16 01:25

shinoharat

総合スコア1676

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問