《質問》
以下のslimファイルの3行目、
= form_with model: [:admin, @user], local: true do |f|
を
= form_with model: @user, local: true do |f|
に変えると処理が通る理由を教えて下さい。
《前提》
- namespaceにadminを設定している(以下routes.rb参照)
- users_controller.rbはapp/controllers/admin/users_controllers.rbというようにadmin以下に格納している
form_with
の文法的に間違っていなさそう(https://techracho.bpsinc.jp/hachi8833/2017_05_01/39502)- railsのバージョン:5.2.3
よろしくおねがいします。
views/admin/users/new.slim.html
html
1h1 ユーザー登録 2 3= form_with model: [:admin, @user], local: true do |f| 4 .form-group 5 = f.label :name, '名前' 6 = f.text_field :name, class: 'form-control' 7 .form-group 8 = f.label :email, 'メールアドレス' 9 = f.text_field :email, class: 'form-control' 10 .form-check 11 = f.label :admin, class: 'form-check-label' do 12 = f.check_box :admin, class: 'form-check-input' 13 | 管理者権限 14 .form-group 15 = f.label :password, 'パスワード' 16 = f.password_field :password, class: 'form-control' 17 .form-group 18 = f.label :password_confirmation, 'パスワード(確認)' 19 = f.password_field :password_confirmation, class: 'form-control' 20 = f.submit '登録する', class: 'btn btn-primary'
config/routes.rb
ruby
1Rails.application.routes.draw do 2 namespace :admin do 3 resources :users 4 end 5 root to: 'tasks#index' 6 resources :tasks 7end
app/controllers/admin/users_controller.rb
ruby
1class Admin::UsersController < ApplicationController 2 def new 3 user = User.new 4 end 5 6 def create 7 @user = User.new(user_params) 8 if @user.save 9 redirect_to admin_users_path, notice: "ユーザー「#{@user.name}を登録しました」" 10 else 11 reder :new 12 end 13 end 14 15 def edit 16 end 17 18 def show 19 end 20 21 def index 22 end 23 24 private 25 26 def user_params 27 params.require(:user).permit(:name, :email, :admin, :password, :password_confirmation) 28 end 29end
通らなかった時のエラーメッセージはどうなっていましたか
回答1件
あなたの回答
tips
プレビュー