Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 侧边栏需要有所有类别,但没有_Ruby On Rails 3_Ruby On Rails 3.1_Ruby On Rails 3.2 - Fatal编程技术网

Ruby on rails 3 侧边栏需要有所有类别,但没有

Ruby on rails 3 侧边栏需要有所有类别,但没有,ruby-on-rails-3,ruby-on-rails-3.1,ruby-on-rails-3.2,Ruby On Rails 3,Ruby On Rails 3.1,Ruby On Rails 3.2,我有一个应用程序,其中我添加了一个侧栏,其中列出了产品所属的所有类别 该功能工作正常,但存在一个问题 代码只扫描当前页面上的产品,而不是实际可用的类别。即: 在我的应用程序中有5个类别的产品,但在当前页面上只有3个。所以代码只显示了3个类别,而不是实际的5个类别。 我怎样才能解决这个问题?这与实例变量有关吗 下面是application.html.erb中的代码 <div> <% a = [""] %> <h1>Categories</h1&

我有一个应用程序,其中我添加了一个侧栏,其中列出了产品所属的所有类别

该功能工作正常,但存在一个问题

代码只扫描当前页面上的产品,而不是实际可用的类别。即:

在我的应用程序中有5个类别的产品,但在当前页面上只有3个。所以代码只显示了3个类别,而不是实际的5个类别。 我怎样才能解决这个问题?这与实例变量有关吗

下面是application.html.erb中的代码

<div>
  <% a = [""] %>
    <h1>Categories</h1>
    <% @products.each do |product| %>
    <% a = a + [product.category] %>
    <% a = a.uniq %>        
  <% end %>

  <% a.each do |c| %>
     <p class="text-error"><%= c %></p>
  <% end %>
</div>
该守则可于


可能只需要你们快速浏览一下就可以回答这个问题……

我假设您的侧边栏也使用与页面布局其余部分相同的请求进行处理(即,没有单独的控制器操作)

@products
您很可能会在两个地方使用。。。一个用于获取主页的产品,另一个用于获取所有产品。。。您可能必须重命名它们并相应地修改它


如果没有帮助,请显示更多代码…与正在呈现页面的备份相关…

如果要显示所有类别,只需执行以下操作

<% for category in Category.all %>
   <%= category.name %>
<% end %>


除非您试图显示附加了产品的类别

如果将单独的
类别
模型映射到
类别
表,则
类别。选择(:name)。uniq
将返回唯一的类别

在您的情况下,表中有category列。那么在这种情况下

产品。选择(:类别)。uniq
将返回具有唯一类别的产品列表

因此,现在您的模板将更干净:

<% for product in Product.select(:category).uniq %>
   <%= product.category %>
<% end %>


您想显示系统中的所有类别,还是列出的产品所附带的所有唯一类别?@AmitPatel我想显示系统中的类别,但一个类别只能显示一次。如果您有单独的
类别
模型映射到
类别
表,则
类别。选择(:name).uniq
将返回唯一的类别。请在下面检查我的答案。很难通过注释解释上述代码没有帮助,抱歉,这一定是因为没有称为类别的单独模型。我已经上传了代码给大家看。现在是。这个项目很容易设置。它可以清楚地显示问题所在。当前页面只有一个类别,而不是所有类别。请您告诉我如何确保在单击该类别时,属于该类别的产品显示在左侧。。只要一个暗示就足够了。。谢谢@amitpatel
产品。其中(类别:“所选类别”)
。检查端到端流量
<% for category in Category.all %>
   <%= category.name %>
<% end %>
<% for product in Product.select(:category).uniq %>
   <%= product.category %>
<% end %>