いまやっていること
Ruby on Railsにて、複数人でバージョン管理しながらアプリケーションを作っています。
その中で、ユーザのログイン機能を、セッションを利用して作っています。
困っていること
下記のようなエラーが出るのですが、ルーティングをどう指定してよいかいまいちわかりません。
以下はエラー画面です。
Ruby
1Routing Error 2No route matches [POST] "/user/login" 3 4Parameters: 5 6{"utf8"=>"✓", 7 "authenticity_token"=>"A9Qqjtdz1DH6yD4nHkQ5l0CR2bEuRtWOiz375ZtL1WPCIMHYtHNsELNDwK0RCeI9lPKYtTEqDXEH0Yo4jZGFZw==", 8 "session"=>{"email"=>"test2@test.com", 9 "password"=>"[FILTERED]"}, 10 "commit"=>"ログインする"}
ソースコード
Ruby
1# コントローラ 2def login_form 3 @current_user = User.find_by(id: session[:user_id]) 4 @user = User.find_by(id: params[:id]) 5 end 6 7 def login 8 puts params 9 @user = User.find_by( 10 email: params[:email], 11 password: params[:password] 12 ) 13 if @user 14 session[:user_id] = @user.id 15 redirect_to ("/home/top") 16 else 17 @email = params[:email] 18 @password = params[:password] 19 render('user/login_form') 20 end 21 end 22 23#ルーティング 24 post '/logout' => 'user#logout' 25 post '/login' => 'user#login' 26 get 'user/login_form' => 'user#login_form' 27 get 'user/home' => 'user#home' 28 resources :user 29 30#ビュー 31<div class = "login-wrapper"> 32 <div class = "login-title"> 33 <h1>ログイン</h1> 34 </div> 35 <%= form_for :session, :url=> "login" do |f| %> 36 <div class = "login-user_email"> 37 <p>メールアドレスを入力</p> 38 <%= f.text_field :email %> 39 </div> 40 <div class = "login-user_email"> 41 <p>パスワードを入力</p> 42 <%= f.text_field :password %> 43 </div> 44 <%= f.submit 'ログインする' %>> 45 <% end %> 46</div>
試してみたこと
ログインルーティングを「/:id」を含まない形にしてみましたが…
エラーの画面を見ると引数の値は入っているようなので渡し方で解決できるのかなと思っています。
その他
ログイン機能を解決できると会員とその他のユーザで画面分けたり、などその次にいけるので、
解決したいです。
お力添えいただければと思います。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/15 13:39