前提・実現したいこと
Ruby on Rails でユーザー一覧画面のセレクトフォームから都道府県を選んでその都道府県に該当するユーザー一覧を表示したいです。
都道府県別ユーザー一覧に飛ぶために
/users/:pref_name/pref_name_index
といったようにparamsでpref_nameを取得したいのですが
inputの”探す”ボタンを押してselectタグのnameをどうやって取得してその都道府県別のユーザー一覧のurlに飛ばせばいいか教えていただきたいです。
該当のソースコード
#ユーザー一覧ページのコード
<div class="main users-index"> <div class="container"> <h1 class="users-heading">ユーザー一覧</h1> <div class="pref-name-form" style="padding:0 50px 20px;"> <h2>地域で探す</h2></div> </div><select name="pref_name"> <option value="" selected>都道府県</option> <option value="北海道">北海道</option> <option value="青森県">青森県</option> <option value="岩手県">岩手県</option> <option value="宮城県">宮城県</option> <option value="秋田県">秋田県</option> <option value="山形県">山形県</option> <option value="福島県">福島県</option> <option value="茨城県">茨城県</option> <option value="栃木県">栃木県</option> <option value="群馬県">群馬県</option> <option value="埼玉県">埼玉県</option> <option value="千葉県">千葉県</option> <option value="東京都">東京都</option> <option value="神奈川県">神奈川県</option> <option value="新潟県">新潟県</option> <option value="富山県">富山県</option> <option value="石川県">石川県</option> <option value="福井県">福井県</option> <option value="山梨県">山梨県</option> <option value="長野県">長野県</option> <option value="岐阜県">岐阜県</option> <option value="静岡県">静岡県</option> <option value="愛知県">愛知県</option> <option value="三重県">三重県</option> <option value="滋賀県">滋賀県</option> <option value="京都府">京都府</option> <option value="大阪府">大阪府</option> <option value="兵庫県">兵庫県</option> <option value="奈良県">奈良県</option> <option value="和歌山県">和歌山県</option> <option value="鳥取県">鳥取県</option> <option value="島根県">島根県</option> <option value="岡山県">岡山県</option> <option value="広島県">広島県</option> <option value="山口県">山口県</option> <option value="徳島県">徳島県</option> <option value="香川県">香川県</option> <option value="愛媛県">愛媛県</option> <option value="高知県">高知県</option> <option value="福岡県">福岡県</option> <option value="佐賀県">佐賀県</option> <option value="長崎県">長崎県</option> <option value="熊本県">熊本県</option> <option value="大分県">大分県</option> <option value="宮崎県">宮崎県</option> <option value="鹿児島県">鹿児島県</option> <option value="沖縄県">沖縄県</option> </select> <input type="submit" value="探す"> </div> <% @users.each do |user| %> <div class="users-index-item"> <% if user.image %> <div class="user-left"> <img src="<%= "/user_images/#{user.image}" %>"> </div> <% else %> <div class="user-left"> <%= gravatar_for user %> </div> <% end %> <div class="user-right"> <%= link_to(user.name, "/users/#{user.id}") %> </div> </div> <% end %>
#都道府県別ユーザーのコード
<div class="main users-index"> <div class="container"> <h1 class="users-heading"><%=@user.pref_name%>のユーザー一覧</h1> <% @users.each do |user| %> <div class="users-index-item"> <% if user.image %> <div class="user-left"> <img src="<%= "/user_images/#{user.image}" %>"> </div> <% else %> <div class="user-left"> <%= gravatar_for user %> </div> <% end %> <div class="user-right"> <%= link_to(user.name, "/users/#{user.id}") %> </div> </div> <% end %> </div> </div>#"users controller"
def index
@users = User.all
end
def pref_name_index
@users = User.where(pref_name: params[:pref_name])
@user = User.find_by(pref_name: params[:pref_name])
end
#routes
get 'users/:pref_name/pref_name', to: 'users#pref_name_index'
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/20 08:55