前提
ボタンを押すことによって、同じコントロールのアクション内にある変数を使い分けたいです。
表示に部分ページを使っているので、変数名を変えたくないです。
実現したいこと
・マイリストボタンが押された時、自分のデータの一覧が表示される。
コントローラー#indexの@q = current_user.restaurants.ransack(params[:q])
の変数が選ばれる
・他リストボタンが押された時、自分以外のデータの一覧が表示される。
コントローラー#indexの@q = Restaurant.where.not(id: current_user.id).ransack(params[:q])
の変数が選ばれる
controller.rb
1 def index 2 @restaurant = Restaurant.new 3 4 if "マイリストボタン"が押されたら 5 @q = current_user.restaurants.ransack(params[:q]) 6 else "他リストボタン"が押されたら 7 @q = Restaurant.where.not(id: current_user.id).ransack(params[:q]) 8 end 9 10 @restaurants = @q.result(distinct: true) 11 @random_select = @restaurants.shuffle.first 12 end
html.erb
1 <div class="navbar-end"> 2 <button value="マイリスト", onclick='/_restaurants.html.erb', > 3 <button value="他リスト", > 4 </div> 5</div>
試したこと
データベースをいじりたい訳ではないので、paramsで送るデータで操作を分けることはできないと分かりました。paramsを使う以外で判別できるようなことはできるのか分からず、何か良い方法はありますでしょうか?
(<button onclick='/~~~~.html'>
のようにページに直接飛ばすとすると、変数名違いで同じ内容のhtmlを複数作ったり、新しくコントローラーを作るのは冗長になると思いました。。)
回答1件
あなたの回答
tips
プレビュー