[英]Ruby on Rails “has_many :through” association return an array
我創建了一個“ has_many:through”關聯。 我有一個帖子,類別和分類模型。 此分類模型具有一個分類表,該表將所有post_id鏈接到category_id。 每個帖子都有多個類別,每個類別都有多個帖子。 如果要調用類別,我想列出所有帖子,但是要做到這一點,我必須制作一個數組並將其存儲在post_ids中。 該數組存儲在@post_ids中。 我如何從中創建一個數組:“ Categorization.find_by(category_id:@category_id).post_id”並將其存儲在@post_ids中?
def index
if params[:category].blank?
@posts = Post.all.order("created_at DESC")
else
@category_id = Category.find_by(name: params[:category]).id
@post_ids = Categorization.find_by(category_id: @category_id).post_id
@posts = Post.where(id: (@post_ids)).order("created_at DESC")
end
提前致謝!
檢索ActiveRecord對象后
a = Categorization.where(category_id: @category_id)
使用pluck通過以下方式檢索所有post_id
a.pluck(:post_id) # Ensure that pluck is a ActiveRecord call and can only be used on Active Record objects.
這種方法似乎更清潔。
只需更換
@post_ids = Categorization.find_by(category_id: @category_id).post_id
與
@post_ids = Categorization.where(category_id: @category_id).map(&:post_id)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.