現在、勤怠アプリを作成しています。
下記のような
管理者ユーザーのみが全員の基本時間と勤務時間を編集できるフォーム入力のページを作成したいのですが
エラーが出てしまい画面を表示できません。
お手数おかけしますが、解決方法を教えていただけないでしょうか。。。
●エラー画面
これまでに行ったこと
●作成ページをedit_basic_info_html.erbとしました
●ヘッダーのリンクのviewを記載いたします(修正済み)
<header class= "navbar navbar-fixed-top navbar-inverse"> <div class= "container"> <%= link_to "勤怠システム", root_path , id: "logo" %> <nav> <ul class="nav navbar-nav navbar-right"> <% if logged_in? %> <li><%= link_to "トップへ", users_path %></li> <% if current_user.admin?%> <li><%= link_to "ユーザ一覧", users_path %></li> <li><%= link_to "edit_basic_info_user_path(user)" %></li> <li class="dropdown"> <a href="#" class="dropdown-toggle", data-toggle="dropdown"> アカウント<b class="caret"></b> </a> <ul class="dropdown-menu"> <li><%= link_to "設定",edit_user_path(current_user)%></li> <li class="divider"></li> <li><%= link_to "ログアウト", logout_path, method: :delete %></li> </ul> </li> <% else %> <li class="dropdown"> <a href="#" class="dropdown-toggle", data-toggle="dropdown"> アカウント<b class="caret"></b> </a> <ul class="dropdown-menu"> <li><%= link_to "設定",edit_user_path(current_user) %></li> <li class="divider"></li> <li><%= link_to "ログアウト", logout_path, method: :delete %></li> </ul> </li> <% end %> <% else %> <li><%= link_to "トップへ", root_path %></li> <li><%= link_to "ログイン", login_path %></li> <% end %> </ul> </nav> </div> </header>
●表示したいview(edit_basic_info)を記載します(追加)
<% provide(:title, 'edit_basic_info') %> <h1>基本情報の更新</h1>
●ルーティングはmemberメソッド内に下記のように記載しました
resources
1 member do 2 get 'edit_basic_info' 3 end 4 end
● userコントローラーにも記載しました(修正済み)
def class UsersController < ApplicationController def index end def new @user = User.new end def show # @userにUserテーブルのidが受け取った値である(params[:id])のレコードを見つけて代入 @user = User.find(params[:id]) @first_day = Date.current.beginning_of_month @last_day = @first_day.end_of_month end def create @user = User.new(user_params) if @user.save log_in @user # 保存成功後、ログインします。 flash[:success] = '新規作成に成功しました。' redirect_to @user else render :new end end 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 private def user_params params.require(:user).permit(:name, :email, :password, :password_Confirmation) end end end
●rails/infoです
*メンバーメソッドでurlにidを付けましたが、1人1人のuserの基本情報を個々に更新するのではなく、
一括で全員の基本情報を更新するので、idは必要ないのでしょうか・・・
エラーメッセージは読まれていますか?
undefined local variable or method 'user' for ... となっており、ご提示いただいた範囲内には、user の定義が確認できませんが。
ご回答ありがとうございます。
はい。エラーは読みました。しかしどこにuserを記載すれば良いのかが、分かりかねている状況です。
コントローラーのeditアクション内でしょうか・・・
関連のソースが一切提示されていないので、一般論になりますが、エラーが発生しているソース内です。
この場合は、viewの中になるかと。
まずは、質問を編集して、関連ソースを(コードとして)ご提示ください。
承知いたしました!
該当するコードの修正と表示したいviewを追加記載させえ頂きました。
お手数おかけしますが、ご拝見いただけますでしょうか。
回答1件
あなたの回答
tips
プレビュー