Ruby on rails Rails-带有动态表的页面?

Ruby on rails Rails-带有动态表的页面?,ruby-on-rails,ruby,database,dynamic,Ruby On Rails,Ruby,Database,Dynamic,我仍然在我的网站上工作,有一个包含项目的数据库。在我的模型中,我有一些记录的参数,比如:“类型”(近战、远程等等)、“弹药”、“重量”、“伤害”等等。 现在不是每个记录都有相同的参数,有些有弹药,有些没有(它们只是空白)。现在,我试图在html.erb中创建一个站点,通过单击索引页上的“类型”按钮来显示我们之前选择的项目类型的范围。假设我们选择近战武器,所以它会将我们重定向到页面,而表格只包含名称、伤害和重量。 下一次我们选择远程,现在同一页显示一个表格,上面有名称、伤害、重量和弹药容量。这是可

我仍然在我的网站上工作,有一个包含项目的数据库。在我的模型中,我有一些记录的参数,比如:“类型”(近战、远程等等)、“弹药”、“重量”、“伤害”等等。 现在不是每个记录都有相同的参数,有些有弹药,有些没有(它们只是空白)。现在,我试图在html.erb中创建一个站点,通过单击索引页上的“类型”按钮来显示我们之前选择的项目类型的范围。假设我们选择近战武器,所以它会将我们重定向到页面,而表格只包含名称、伤害和重量。 下一次我们选择远程,现在同一页显示一个表格,上面有名称、伤害、重量和弹药容量。这是可能的,还是我必须为我拥有的每个范围创建单独的页面?如果可能的话,有人能帮我吗

这是我的模型:

class Items < ActiveRecord::Base

  has_attached_file :icon, :styles => { :medium => "300x300>", :thumb => "24x24>" },
                    default_url: "/assets/items/missing.png",
                    url: "/assets/items/:id/:style/:basename.:extension",
                    path: ":rails_root/public/assets/items/:id/:style/:basename.:extension"
  validates_attachment_content_type :icon, :content_type => /\Aimage\/.*\Z/


  scope :melee, -> { where(type: 'Melee')}
  scope :ranged, -> { where(type: 'Ranged')}
  scope :accs, -> { where(type: 'Accessories')}
  scope :ves, -> { where(type: 'Vests')}

end
再次为我糟糕的英语道歉


<table>

  <% @items.each_slice(3) do |slice| %>   
    <tr>
      <% slice.each do |item| %>
       <td> 
         <%= item.name %>
       </td>
     <% end %>
    </tr>
  <% end %>

</table>
看一看。使用相同的方法。在您的路线中可以有类似的内容:

resources :items do
  collection do
    get '/:type' => 'items#item_type'
  end
end
然后在
ItemsController
中创建一个方法:

def item_type
  @items = Post.respond_to?(params[:type])? Post.public_send(params[:type]) : []
end
现在,在items/item_type.html.erb文件中:

<table>
  <thead>
    <tr>
      <th>Name</th>
      <th>Price</th>
    </tr>
  </thead>
  <tbody>
    <% @items.each do |item| %>
      <tr>
        <td><%= item.name %></td>
        <td><%= item.price %></td>
      <tr>
    <% end %>
  </tbody>
</table>

名称
价格

上面给出的代码就是一个例子,当然您需要更改上面显示的属性名称和列名,以适应您的场景。

请检查我对这个几乎相同的问题的回答。谢谢,我已经完成了,但我仍然不知道如何制作表来显示适合项目类型的字段。谢谢!这正是我所想的,但我完全不知道如何写它!如果我遇到任何问题,我会更新我的帖子。这是可行的,但有一件事我还是搞不清楚。如果我发送“远程”类型,如何使远程物品参数(如弹药)显示唯一?我在想布拉布拉,但在我查看近战物品时,它也出现了。
<table>
  <thead>
    <tr>
      <th>Name</th>
      <th>Price</th>
    </tr>
  </thead>
  <tbody>
    <% @items.each do |item| %>
      <tr>
        <td><%= item.name %></td>
        <td><%= item.price %></td>
      <tr>
    <% end %>
  </tbody>
</table>