前提・実現したいこと
作成したユーザー編集情報がDBに保存されない問題。
rails初心者です。
deviseを使い、会員登録ができるように実装しました。
deviseのデフォルトでついている、メールアドレス、パスワード変更ビューとは別にユーザー編集機能を作ったところ、エラーメッセージは出ないのですがDBに保存されません。
ユーザー情報のメールアドレス、パスワード変更や、ユーザーが投稿できるイベント情報の編集はdbにしっかり保存されます。
ご教示よろしくお願いします。
config/routes.rb
Ruby
1Rails.application.routes.draw do 2 devise_for :users 3 # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html 4 root to: "top#index" 5 resources :events 6 resources :users 7 end 8
###app/controllers/users_controller.rb
RUby
1class UsersController < ApplicationController 2 def show 3 @user= User.find(params[:id]) 4 @events= Event.where(user_id: @user.id).page(params[:page]).per(10) 5 end 6 7 def edit 8 @user=User.find(params[:id]) 9 end 10 11 def update 12 @user=User.find(params[:id]) 13 if @user_id == current_user.id 14 @user.update(user_params) 15 end 16 unless @user.save 17 render action: :edit 18 end 19 end 20 21 private 22 def user_params 23 params.require(:user).permit(:image,:name,:text,:link).merge(user_id: current_user.id) 24 end 25end
app/views/users/edit.html.erb
Ruby
1<h3> 2 ユーザー情報を編集する 3</h3> 4 5<%= form_for @user do |f| %> 6 7 <%= f.label "プロフィール写真" %> 8 <%= f.file_field :image %><br><br> 9 10 <%= f.label "名前" %> 11 <%= f.text_field :name, placeholder: '名前'%><br><br> 12 13 <%= f.label "自己紹介" %> 14 <%= f.text_area :text, placeholder: '自己紹介文を記載してください',style: 'width: 50%; height: 100px'%><br><br> 15 16 <%= f.label 'link編集' %> 17 <%= f.text_field :link, placeholder: 'リンク先'%><br><br> 18 19 <div class="col10 push1"> 20 <%= button_tag type: "submit", class: "btn btn--block" do %> 21 変更する<i class="icon-arrow-right"></i> 22 <% end %> 23 </div> 24<% end %>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/10 05:47