私はRuby on Railsの新機能です.Funkoポップのコレクターがログインして、それらが持っているFunkoポップを記録できるアプリケーションに取り組んでいます。それは非常に簡単です、そして、funkos自体についての情報を入力するためのフィールドがいくつかあります。タイトル、説明、カテゴリ、funkoの画像をアップロードする機能により、ユーザのホーム画面は、すべてのファンコが棚のように表示されます。ユーザーごとにカテゴリごとに投稿を並べ替えるにはどうすればよいですか?
ANYWAY。私は機能が組み込まれているので、ユーザは自分のホーム画面をカテゴリ別に並べ替えることができるので、ユーザがドロップダウンをクリックして「Marvel」を選択すると、Marvel funkoのすべてのポップが表示されるはずです。カテゴリに「驚異」のFunkosがない場合、このカテゴリにはFunkosが存在しないというメッセージが表示されます。この機能は完全に機能しますが、新しいユーザーを作成してサインインし、カテゴリ別に並べ替えると、選択したカテゴリのすべてのFunkosがで表示されますが、すべてのユーザーはとなります。
ユーザーごとにカテゴリ別にFunkosを表示できるようにするため、ユーザーが入力したすべてのFunkosはカテゴリドロップダウンリストを使用して並べ替える必要があります。ここで
は、メインコントローラ用のコードです:
class FunkosController < ApplicationController
before_action :find_funko, only:[:show, :edit, :update, :destroy]
def index
if user_signed_in? && params[:category].blank?
@funkos = Funko.where(:user_id => current_user.id).all.order("created_at DESC")
elsif params[:category].present?
@category_id = Category.find_by(name: params[:category]).id
@funkos = Funko.where(:category_id => @category_id).order("created_at DESC")
else
end
end
def show
end
def new
@funko = current_user.funko.build
@categories = Category.all.map{ |c| [c.name, c.id]}
end
def create
@funko = current_user.funko.build(funko_params)
@funko.category_id = params[:category_id]
if @funko.save
redirect_to root_path
else
render 'new'
end
end
def edit
@categories = Category.all.map{ |c| [c.name, c.id]}
end
def update
@funko.category_id = params[:category_id]
if @funko.update(funko_params)
redirect_to funko_path(@funko)
else
render 'edit'
end
end
def destroy
@funko.destroy
redirect_to root_path
end
private
def funko_params
params.require(:funko).permit(:title, :description, :category_id, :funko_img)
end
def find_funko
@funko = Funko.find(params[:id])
end
end
うまくいけば、ここでの私の最初のポスト/質問は私が探している答えを得るために明確かつ十分に簡潔です!私は、新しいユーザーを作成してサインインし、カテゴリ別にソートするとき
おかげ
トム
素晴らしい。どうもありがとうございます! –