質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

900閲覧

devise updateアクションとdestroyアクションが機能しない

ko-u

総合スコア61

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

1クリップ

投稿2018/10/26 05:57

編集2018/10/26 08:03

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kenny_sayama

2018/10/26 07:33

可能な限り情報を多くいただけると解決への糸口となるかと思います。deviseだと関連ファイルがいくつかあるかと思うのですが、それらの中身とrails routesの結果を教えていただけますか?
ko-u

2018/10/26 07:44

コメントありがとうございます!ただ今、詳細ファイルの情報を載せさせていただきました。よろしくお願いいたします。
kenny_sayama

2018/10/26 07:51

routes.rbが怪しい気がするので、そちらの中身もよろしいですか?
ko-u

2018/10/26 08:04

はい!routes.rbの詳細も追加しました。
guest

回答1

0

ベストアンサー

controllerを作っただけでは、足りず
routes.rbに記述が必要です。

devise_for :users, :controllers => { :registrations => 'users/registrations' }

参考
http://madogiwa0124.hatenablog.com/entry/2017/11/26/221657

投稿2018/11/05 08:58

dobby618

総合スコア302

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問