表記ルーティングエラーについて質問です。
railsチュートリアルを参考にしながらユーザーの編集ページを作成したところ、ヘッダーから設定画面に入るところでエラーが出てしまいました。
##試した方法
・ルーティング
ネット上やrailsチュートリアルにはRESTFulなURLとして
resourses:users
でルーティングを設定しており、わざわざルーティングを記述していないようなことも多かったです。
ですが、その通りにするとルーティングエラーが起きてしまいました。
試しに以下のように追記をしてroutes.rbを修正してみたりしましたがネット上のいろいろなURLを参考にしても結果エラーが出てしまいました。
(例)
get '/edit/:id/users', to: 'users#edit'
get '/edit/users/:id', to: 'users#edit'
・view
ネット上に、viewを
<li><%= link_to "設定", 'edit_user_path(current_user)' %>ではなく <li><%= link_to "設定", 'edit_user_path(@current_user)' %>という解決方法もありましたが、解決しませんでした。##現在のコードの状態
header.html.erb
<ul class="dropdown-menu"> <li><%= link_to "プロフィ-ル", current_user %></li> <li><%= link_to "設定", 'edit_user_path(current_user)' %></li>
routes.rb
Rails.application.routes.draw do get 'sessions/new' get 'static_pages/home' get '/about', to: 'static_pages#about' get '/contact', to: 'static_pages#contact' get '/signup', to: 'users#new' post '/signup', to: 'users#create' resources :users get '/login', to: 'sessions#new' post '/login', to: 'sessions#create' delete '/logout', to: 'sessions#destroy' get 'comments/create' get 'comments/destroy' # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html root 'static_pages#home' resources :favorites, only: %i[create destroy] resources :comments, only: %i[create destroy] resources :posts end
users_controller.rb
def edit @user = User.find(params[:id]) end def update @user = User.find(params[:id]) if @user.update_attributes(user_params) flash[:success] = "プロフィールが更新されました!" redirect_to @user else render'edit' end end
##環境
AWSのcloud9を使用しています。
rubyのバージョンは 2.4.1p111
railsのバージョンはRails 5.0.7 です。
どなたかご教示くださいましたらとてもうれしいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/22 11:50