0

这是我的控制器动作

@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

我有以下字段的表格帖子

  1. ID
  2. 类别ID
  3. sub_category_id
  4. product_id
  5. 标题

我有以下一组表格

  1. 类别
  2. 子类
  3. 产品

在我看来,我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?
4

2 回答 2

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在每个方法上都有一个方法来获取您想要的文本。您还需要处理找不到 // 的情况,在这种情况下您CategorySubCategory得到. 您不能调用on 方法,因此您需要做一些事情来处理这种情况。如果您只需要来自的文本而不需要其他信息,则如何执行此操作的一个示例:Productnil.namenilCategory

@category = Category.find(@post.category_id)
@category_name = @category.name unless @category.blank?
于 2013-09-29T20:07:42.587 回答
0

您必须在链接中添加参数,如下所示:

<a href='/controller/post?category_id=1&sub_category_id=2&product_id=3'>click-here</a>
于 2013-09-29T18:41:21.523 回答