显示所有在其类别列表中具有特定类别的文章的问题?
Articles
has_and_belongs_to_many Categories
Categories
has_and_belongs_to_many Articles
class CreateJoinTableArticleCategory < ActiveRecord::Migration
def change
create_join_table :articles, :categories do |t|
# t.index [:article_id, :category_id]
# t.index [:category_id, :article_id]
end
end
end
模型和迁移很好,种子是rails控制台中的精细信息很好但在控制器中我有问题显示我从URL获得的某个类别的所有文章:
class CategoriesController < ApplicationController
def show
@user = current_user
@categories = Category.all
@category = Category.friendly.find(params[:slug])
#@a = Article.where(category_id: @category, published: true)
#@a = Article.left_outer_joins(:categories).where("categories.category_id = @category")
#@a = Article.joins("LEFT JOIN articles_categories ON category.id = articles_categories.id")
#@a = Article.includes(:categories).where(@category)
@q = Question.where(category_id: @category, published: true)
@articles = (@q + @a).sort_by(&:created_at).reverse.paginate(page: params[:page], per_page: 4)
end
end
答案 0 :(得分:0)
我不熟悉&#34;。友好&#34; (你为什么要使用它?),但你确定你只获得1个类别吗?如果是这样,你的第一个@a应该工作或更简单的版本
clang-tidy test/src/inv.cpp -config ''
你是否尝试过没有@q来测试它。我看到问题的唯一来源。
PS:您的代码会遇到很大的性能问题。首先,您要加载所有类别,然后加载1类别的所有文章和问题,按Ruby排序并完全禁用分页的优势。
答案 1 :(得分:0)
显然,我不知道您的数据的确切结构如何,但这可以在稍微改变以适应您的需求时起作用。
Articles.includes(:categories).where('category.name = ?', 'category_name').references(:categories)
答案 2 :(得分:0)
试试这个:
DECLARE
src_lob BFILE := BFILENAME('MY_DIR', '/tmp/me.gif');
dest_lob BLOB;
BEGIN
INSERT INTO lob_table VALUES(2, EMPTY_BLOB())
RETURNING doc INTO dest_lob;
DBMS_LOB.OPEN(src_lob, DBMS_LOB.LOB_READONLY);
DBMS_LOB.LoadFromFile( DEST_LOB => dest_lob,
SRC_LOB => src_lob,
AMOUNT => DBMS_LOB.GETLENGTH(src_lob) );
DBMS_LOB.CLOSE(src_lob);
COMMIT;
END;
已发布在文章模型中创建的范围
在文章模型中创建范围:
@category = Category.friendly.find(params[:slug])
@category.articles.published