###前提・実現したいこと
railsでログイン処理のあるアプリを作っています。
メールアドレスとパスワードを入力することでログインする仕様なのですが、都合上メールアドレスの@以下がある程度しぼられているので、@より前はtext_fieldにして、@より後はselect_tagにしました。
html
1<%= form_for(:session, url: login_path) do |f| %> 2 3 <%= f.label :email %> 4 <%= f.text_field :email, class: 'form-control' %> 5 <%= select_tag :domain , options_for_select(@domain), 6 include_blank: '-- 未指定 --', class: 'form-control' %>
select_tagに使われている@domainはcontrollerで配列を作っています。
ruby
1def new 2 num = 1 3 @domain = [] 4 while num < 10 do 5 @domain << "@mail" + num.to_s + ".daigaku.ac.jp" 6 num += 1 7 end 8end
以下のコードでformの:emailと:domainを結合してuserを検索しようとしたのですが
ruby
1 def create 2 email = params[:session][:email].to_s.downcase + params[:domain].to_s 3 user = User.find_by(email: email)
フォームに入力してログインしようとしても、以下のエラーが出てログインできません。
おそらくselect_tagが何か悪さをしていると思うのですが何がダメなのか分かりません。
どうすればいいでしょうか?
createメソッドまでは正しくパラメータが渡っているように見えます。createメソッドの続きにmapを使っている箇所はありませんか?
自分で書いたここの処理にかかわっているコードにはmapを使っている箇所はありませんでした
回答2件
あなたの回答
tips
プレビュー