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