多くのカテゴリを持ち、それに属するテーブル プロジェクトがあります。メイン ページには、すべてのプロジェクトが表示されます。カテゴリごとにクリック イベントがあり、そのカテゴリでプロジェクトをフィルター処理するデータベースが必要です。誰かがこれを達成するためのフレームワークを手伝ってくれますか? 私は、jquery/rails は言うまでもなく、AJAX の完全な初心者です。
ユーザーが複数の投稿をクリックして、両方のカテゴリの投稿をフィードに表示できるソリューションであれば、ボーナス ポイントとなります。
前もって感謝します!
モデル:
class Project < ActiveRecord::Base
attr_accessible :id, :filename, :location, :uploaded_file, :project_id, :category_id
has_and_belongs_to_many :categories
def to_hash
{
:id => self.id,
:filename => self.filename,
:location => self.location,
}
end
end
class Category < ActiveRecord::Base
attr_accessible :name, :id, :category_id, :project_id
has_and_belongs_to_many :projects
def to_hash
{
:id => self.id,
:name => self.name
}
end
end
class Category_Project < ActiveRecord::Base
attr_accessible :project_id, :category_id
belongs_to :project
belongs_to :category
def to_hash
{
:project_id => self.project_id
:category_id => self.category_id
}
end
end
私のjQuery onclick関数でのAJAX呼び出し。「猫」は確立されたカテゴリ名の 1 つの名前です。
...
params = 'category_name=' + cat;
$.ajax({
url: "/projects_controller/filter_list",
data: params
})
私のビューは @projects.each do |project| を実行するだけです。関数。
projects_controller の関連機能:
def filter_list
@projects = Project.includes(:categories).where("categories.name = ?", params[:category_name])
respond_to do |format|
change_color.js /// Is this right?? This is same .js file my onclick event is in.
end
end
しかし、テストしてカテゴリ「食品」のタブをクリックすると、何も起こらず、500 内部サーバー エラーが発生します。