Deivseを導入し、ログイン・ログアウトは出来るようになりました。
対象モデルは社員(Employee)です。
次に、下記を参考に「社員コード」と「社員名」を追加しました。
Rails Deviseでサインアップ用のユーザー登録フォームに、独自の入力フィールドを追加する
元々、社員マスタは一式あったのですが、あとからDevise機能を追加するとうまく行かないことが多いようなので、
モデルは1から作り直しました(rails g devise Employeeしました)。
それに対し、マイグレーションで「社員コード」と「社員名」を追加したわけです。
ただし、viewだけは元々あったやつを流用しました。
これで登録画面から登録すると、TOP画面に遷移します。
登録は出来ていません。
エラーログも出力されていません。
社員マスタの登録画面から登録を行い、社員一覧に遷移したいです。
なお、Deviseセットアップ時に自動で作られる
app/views/devise の一式はそのまま手付かずの状態です。
どこが間違っているでしょうか?
分かる方教えてください。
どうぞ宜しくお願い致します。
【モデル】
employee
ruby
1class Employee < ApplicationRecord 2 # Include default devise modules. Others available are: 3 # :confirmable, :lockable, :timeoutable and :omniauthable 4 devise :database_authenticatable, :registerable, 5 :recoverable, :rememberable, :trackable, :validatable 6 7 validates :emp_code, presence: true 8 validates :emp_name, presence: true 9 10 11end 12
【コントローラ】
ruby
1class ApplicationController < ActionController::Base 2 3 before_action :authenticate_employee! 4 before_action :configure_permitted_parameters, if: :devise_controller? 5 6 7 protect_from_forgery with: :exception 8 9 protected 10 def configure_permitted_parameters 11 devise_parameter_sanitizer.permit(:sign_up, keys: [:emp_code,:emp_name]) 12 end 13 14end 15 16
【ビュー】
_form.html.erb
ruby
1 2<%= render "shared/errors", obj: @employee %> 3 4<table class="table "> 5 <tr> 6 <th><%= form.label :emp_code, "社員コード" %></th> 7 <td><%= form.text_field :emp_code %></td> 8 </tr> 9 10 <tr> 11 <th><%= form.label :emp_name, "社員名" %></th> 12 <td><%= form.text_field :emp_name %></td> 13 </tr> 14 15 <tr> 16 <th><%= form.label :email , "メール" %></th> 17 <td><%= form.text_field :email %></td> 18 </tr> 19 20 <tr> 21 <th><%= form.label :password , "パスワード" %></th> 22 <td><%= form.text_field :password %></td> 23 </tr> 24 25 <tr> 26 <th><%= form.label :password_confirmation , "パスワード確認用" %></th> 27 <td><%= form.text_field :password_confirmation %></td> 28 </tr> 29 30 <tr> 31 <th><%= form.label :retire_date, "退職日" %></th> 32 <td><%= form.text_field :retire_date, class: 'date-picker' %></td> 33 </tr> 34 35</table> 36 37
new.html.erb
ruby
1 2<div class="container-fluid"> 3 <div class="row"> 4 <div class="col-xs-4 col-xs-offset-2" > 5 <h1 class="page-title">社員の新規登録</h1> 6 </div> 7 8 <div class="col-xs-8 col-xs-offset-2" > 9 <div class="contents-box"> 10 <%= form_for @employee do |form| %> 11 <%= render 'form', form: form %> 12 <p><%= form.submit "登録", class: "btn btn-primary" %></p> 13 <% end %> 14 </div> 15 16 17 18 19 </div> 20 </div> 21</div>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/23 08:10
2017/06/23 08:23
2017/06/23 22:59