rails <ul> 视图中有数组

rails <ul> with an array in the view

我刚开始 rails,仍在学习基础知识和进行试验

在我看来,有一个包含公司名称的数组;我正在使用 erb 来显示带有 <ul> 的项目。

<% companies = ["a", "b", "c"] %>
<ul class="list-group">
  <% companies.each do |item| %>
    <li class="list-group-item"><strong><%= item %></strong></li>
  <% end %>
</ul>

到目前为止,该页面正在执行我想要的操作(显示公司名称)。我想知道 rails 的方法是什么,因为 companies 数组有点长。有没有更好的方法来处理数组的信息,而不会使视图页面混乱?非常感谢。

您会想要 "paginate" 您的数据。 IE。你 select 一个尺寸(比如说 25 件商品),那么你只能在 "page" 上显示那么多商品。页面顶部(and/or 底部)有一个导航栏,可让您更改页面。

如果您在数据库中有数据,那么分页 gems 只需几行代码即可完成此操作。一个流行的是 will_paginate https://github.com/mislav/will_paginate

如果您只想在 UI 方面进行更多实验,您可以使用 jquery 分页插件:例如 http://esimakin.github.io/twbs-pagination/

    $('.list-group').twbsPagination({
    totalPages: 35,
    visiblePages: 7,
    onPageClick: function (event, page) {
        $('#page-content').text('Page ' + page);
    }
});

创建一个名为 Company 的模型:

#app/models/company.rb
class Company < ActiveRecord::Base
end

您还需要相应的数据库值:

$ rails g migration CreateCompany

#db/migrate/create_company.rb
class CreateCompany < ActiveRecord::Migration
   def change
      create_table :companies do |t|
         t.string :name
         t.timestamps
      end
   end
end

$ rake db:migrate

--

这将允许您存储 Company 条记录,具有相应的属性(name 是本例中突出显示的那个):

#config/routes.rb
resources :companies #-> url.com/companies

#app/controllers/companies_controller.rb
class CompaniesController < ApplicationController
   def index
      @companies = Company.all
   end
end

#app/views/companies/index.html.erb
<ul class="list-group">
  <% @company.each do |company| %>
    <%= company.name %>
  <% end %>
</ul>

您可以使用 rails console:

创建一些测试 Company
$ rails c
$ names = %w(test1 test2 test3)
$ names.each do |name|
$ - Company.create name: name
$ end