Ruby初心者です。
現在、インスタグラムのようなサービスの作成を行っております。
gemのdeviseをインストールしたのですが、ユーザ情報の編集と削除が出来ません。(エラーにもならない)
何らかの理由で、updateアクションが機能していないのでは?と考え、
registration_controller.rbを作成し、以下のようにオーバーロードしてみました。
def update @resource = Resource.find(parmas[:id]) if @user.update_attributes(user_params) redirect_to @user else render 'edit' end end
しかし、同様にユーザ情報の編集をすることが出来ません。
どのように行えば、updateすることが出来るでしょうか?
ご教授して頂けると幸いです。
よろしくお願いいたします。
【追記】
機能しないviewはdeviseのregistration/edit.html.erbになります。
以下に載せます。
rails routes
new_user_session GET /users/sign_in(.:format) devise/sessions#new user_session POST /users/sign_in(.:format) devise/sessions#create destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy new_user_password GET /users/password/new(.:format) devise/passwords#new edit_user_password GET /users/password/edit(.:format) devise/passwords#edit user_password PATCH /users/password(.:format) devise/passwords#update PUT /users/password(.:format) devise/passwords#update POST /users/password(.:format) devise/passwords#create cancel_user_registration GET /users/cancel(.:format) devise/registrations#cancel new_user_registration GET /users/sign_up(.:format) devise/registrations#new edit_user_registration GET /users/edit(.:format) devise/registrations#edit user_registration PATCH /users(.:format) devise/registrations#update PUT /users(.:format) devise/registrations#update DELETE /users(.:format) devise/registrations#destroy POST /users(.:format) devise/registrations#create
registration/edit,html.erb
<h1>プロフィールの編集</h1> <%= form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |f| %> <div class="form-group"> <%= f.label :name, "名前" %> <%= f.text_field :name, autofocus: true, class: "form-control" %> </div> <div class="form-group"> <%= f.label :website, "ウェブサイト" %> <%= f.text_field :website, autofocus: true, class: "form-control" %> </div> <div class="form-group"> <%= f.label :bio, "自己紹介" %> <%= f.text_field :bio, autofocus: true, class: "form-control" %> </div> <div class="form-group"> <%= f.label :email, "メールアドレス" %> <%= f.email_field :email, autofocus: true, class: "form-control" %> </div> <div class="form-group"> <%= f.label :password, "パスワード" %> <%= f.password_field :password, autofocus: "off", class: "form-control" %> </div> <div class="form-group"> <%= f.label :password_confirmation, "パスワードの確認" %> <%= f.password_field :password_confirmation, autofocus: "off", class: "form-control" %> </div> <%= f.submit "変更する", class: "btn btn-primary" %> <% end %> <br> <div class="form-group"> <%= button_to "アカウントを削除する", registration_path(resource_name), data: { confirm: "Are you sure?" }, method: :delete %> </div> <ul> <li><%= link_to "パスワードの変更",edit_user_password_path(@resource)%></li> <li><%= link_to "Back", :back %></li> </ul>
routes.rb
Rails.application.routes.draw do devise_for :users root to: 'pages#home' resources :users, only: %i(show index) resources :posts, only: %i(index new create show) do resources :photos, only: %i(create) end resources :posts do resources :likes, only: %i(create destroy) end resources :users do member do get :following, :followers end end resources :relationships, only: %i(create destroy) end
回答1件
あなたの回答
tips
プレビュー