🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

1715閲覧

rails indexページ Category分け

franseagal1

総合スコア5

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2021/02/04 23:55

困っている事: railsにてindexページでのカテゴリー分けに困っています。

したい事: リンクをクリックしたらそのカテゴリーだけindex表示させたいです。

どなたか良いアドバイスありましたら教えて頂けると助かります。

index.controller.rb def create @item = current_admin.items.build(item_params) if @item.save flash[:success] = "Your item is posted" redirect_to root_path else render 'new' end end def index if params[:category] @category = Item.where(category: params[:category]).paginate(page: params[:page]) else @items = Item.paginate(page: params[:page]) end end
routes.eb get '/index/:id', to: 'items#index' resources :items, only: %i(show index) do scope module: :items do resources :add_to_baskets, only: %i(create) resources :delete_in_baskets, only: %i(create) end end
index.html.erb ///カテゴリ 目次 <li><%= link_to "aaaa", "index/(:aaa)" %></li> カテゴリ 目次/// <% (@category || @items) .each do |item| %> <div class="col-md-4 products-right-grids-bottom"> <div class="new-collections-grid1 products-right-grid1 animated wow slideInUp" data-wow-delay=".5s"> <div class="new-collections-grid1-image"> <%= link_to(image_tag(item.img.thumb.url || "30.jpg") , item, class: "img-responsive" ) %> <div class="new-collections-grid1-image-pos products-right-grids-pos"> <%= link_to "Quick View", item%> </div> </div> <h4><%= link_to item.name, item %></h4> <div class="simpleCart_shelfItem products-right-grid1-add-cart"> <p><i>$325</i><span class="item_price"><%= item.price %></span> <%= link_to "add to basket",item_add_to_baskets_path(item), method: :post, class: "item_add"%> </p> <% if current_admin.present? %> <%= link_to "delete", admins_item_path(item) , method: :delete, data: { confirm: "Deleting You sure?" }, class: "btn btn-danger pull-left" %> <%= link_to "edit", edit_admins_item_url(item), class: "btn btn-warning pull-right" %> <div class="clearfix"></div> <% end %> </div> </div> </div> <% end %>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

oakbow

2021/02/05 02:46

indexアクションで@category変数を使う必要はなさそうですが、現状どういう現象が発生しているんでしょうか。
guest

回答1

0

ベストアンサー

うーん、カテゴリのリンクって <%= link_to "aaaa", "index/(:aaa)" %> かな?
index.controller.rb じゃなくて ItemsContoroller ですよね、多分。。

  • インスタンス変数名を切り替える必要はない、というか切り替えては行けない。あくまで item の集合を扱っているのに別の変数名を割り当てるのはおかしい。
# ItemsController.rb @category = Item.where(category: params[:category]).paginate(page: params[:page])   ↓ @items = Item.where(category: params[:category]).paginate(page: params[:page])
  • パラメータの指定を category にする
# routes.rb get '/index/:id', to: 'items#index'   ↓ get '/index/:category', to: 'items#index'
  • パラメータの指定の仕方がおかしい
# index.html.erb <li><%= link_to "aaaa", "index/(:aaa)" %></li>   ↓ <li><%= link_to "aaaa", "index/aaa" %></li>
  • 変数を切り替える必要がなくなったので、@items だけにする。
# index.html.erb <% (@category || @items) .each do |item| %>   ↓ <% @items.each do |item| %>

こんな感じで動くようにならないでしょうか。

投稿2021/02/05 03:01

oakbow

総合スコア227

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

franseagal1

2021/02/05 04:55

解決しました。ありがとうございます!  そうですねコントローラーの部分がおかしいです。 初心者ながらすみません。  助かりました!! 本当にありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問