いつもお世話になっております。
Rails5でWebアプリを作っており、今簡単なログインフォームを作っているのですが、DBへの保存ができず困っております。
以下が当該のコードになります。
ruby
1#new.html.erb 2<%= form_for @user, :url => {:action => 'create'} do |f| %> 3 <%#= render "shared/errors", object:@users %> 4 <%= f.label "ユーザー名" %> 5 <%= f.text_field :user_name %> 6 <%= f.label "パスワード" %> 7 <%= f.password_field :password %> 8 <%= f.submit "登録", class: "btn btn-primary"%> 9<p>ログインは<a href="<%= users_path %>">こちら</a></p> 10<% end %>
ruby
1#users_controller 2class UsersController < ApplicationController 3 def index 4 end 5 6 def new 7 @user = User.new(user_params) 8 end 9 10 def create 11 @user = User.new(user_params) 12 if @user.save 13 redirect_to root_path 14 else 15 render :new 16 end 17 end 18 19 def edit 20 end 21 22 def update 23 end 24 25 def delete 26 end 27 28 private 29 30 def user_params 31 { 32 user_name: params[:user_name], 33 password: params[:password] 34 } 35 end 36end
modelには何も記述していません。
ログとコンソールでパラメータを見たのですが、
Started POST "/users/create" for ::1 at 2017-12-12 20:33:19 +0900 Processing by UsersController#create as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"P3Hz9j9NZ+x5YW8shCwY4L2BfCuq+RL6BzD+1Z+Sh2/RntHwITuPHMWzT460zXaPnmim4mvpoeBTZ2fNAw+6/g==", "user"=>{"user_name"=>"aaaaaa", "password"=>"[FILTERED]"}, "commit"=>"登録"} From: /Users/XXXXXXX/workspace/myapp/app/controllers/users_controller.rb @ line 12 UsersController#create: 9: def create 10: @user = User.new(user_params) 11: binding.pry => 12: if @user.save 13: redirect_to root_path 14: else 15: render :new 16: end 17: end [1] pry(#<UsersController>)> @user => #<User:0x007faebfd19eb0 id: nil, user_name: nil, created_at: nil, updated_at: nil, password: nil> [2] pry(#<UsersController>)> exit (0.6ms) BEGIN SQL (3.5ms) INSERT INTO `users` (`created_at`, `updated_at`) VALUES ('2017-12-12 11:33:39', '2017-12-12 11:33:39') (2.1ms) COMMIT Redirected to http://localhost:3000/ Completed 302 Found in 19707ms (ActiveRecord: 6.2ms)
送信ボタンを押した時点ではパラメータ内にあるのに、Controllerに来た時点で中身がなくなってしまっています。
idやcreated_atなどは保存ができています。
思い当たることは特にないのですが…
初歩的な質問で申し訳ないですが、ご教授いただければと思います。
どうぞよろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/12/13 07:21
2017/12/13 07:22
退会済みユーザー
2017/12/13 07:24