这是我的控制器动作
@posts = Post.where(sub_category_id: params[:id]).paginate(page: params[:page], per_page: 2).to_a
post表包含category_id,sub_category_id,product_id。所有这三个表
现在我需要来自id的映射名称。我怎样才能实现它。
我尝试@sub_category = SubCategory.find params[:id]
获取子类别,它可以正常工作。
上述方法是否良好?如果是,我怎么能实现它以获得其他表数据。
修改-1
我正在使用以下字段的表格
我正在使用以下一组表格
在我看来,我的title
是超链接。当我点击它。它会重定向到受尊重的帖子页面,我必须显示breadcrum
这样的Electronics->Laptop->Dell
修改-2
我尝试了但是得到了错误
undefined method `category_id' for #<ActiveRecord::Relation::ActiveRecord_Relation_Post:0xb4e7a9f0>
尝试以下
@posts = Post.where(sub_category_id: params[:id]).paginate(page: params[:page], per_page: 2).to_a
@category = Category.find(@posts.category_id) unless @posts.blank?
答案 0 :(得分:0)
你必须在链接中添加params,类似这样的内容:
<a href='/controller/post?category_id=1&sub_category_id=2&product_id=3'>click-here</a>
答案 1 :(得分:0)
如果您的post
或其他操作中有show
,您可以获得如下值:
# PostsController#show
...
@post = Post.find(params[:id])
@category = Category.find(@post.category_id)
@sub_category = SubCategory.find(@post.sub_category_id)
@product = Product.find(@post.product_id)
然后在你看来:
# show.html.erb
...
<%= @category.name + ">>" + @sub_category.name + ">>" + @product.name %>
这假设您在每个方法上都有.name
方法来获取所需的文本。您还需要处理未找到Category
/ SubCategory
/ Product
的情况,在这种情况下,您将获得nil
。您无法在.name
上调用nil
方法,因此您需要做一些事情来处理这种情况。如果您只需要Category
中的文字而没有其他信息,那么如何执行此操作的一个示例是:
@category = Category.find(@post.category_id)
@category_name = @category.name unless @category.blank?