我有这个由Rails自动生成的列表。它列出了我的数据库的内容,我想引导它,添加分页和一些不错的CSS。
<p id="notice"><%= notice %></p>
<h1>Listing Posts</h1>
<table>
<thead>
<tr>
<th>Name</th>
<th>Title</th>
<th>Content</th>
<th colspan="3"></th>
</tr>
</thead>
<tbody>
<% @posts.each do |post| %>
<tr>
<td><%= post.name %></td>
<td><%= post.title %></td>
<td><%= post.content %></td>
<td><%= link_to 'Show', post %></td>
<td><%= link_to 'Edit', edit_post_path(post) %></td>
<td><%= link_to 'Destroy', post, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</tbody>
</table>
<br>
<%= link_to 'New Post', new_post_path %>
此表单显示在生成的控制器中的index.html.erb中。
在这种生成的文件中添加一些CSS的最快方法是什么?我已经在相应的.scss文件中导入了Bootstrap,但是真的有必要在任何地方手动定义bootstrap类吗?
我不能用一些漂亮的宝石欺骗吗?
答案 0 :(得分:1)
使用table
类,如:
<table class="table">
并使用will_paginate bootstrap
作为分页。这是链接https://github.com/bootstrap-ruby/will_paginate-bootstrap。
答案 1 :(得分:1)
一个不错的是kaminari
宝石。安装它,
在你的控制器中,你可以这样做,
@posts = Post.page(params[:page]).per(10)
其中page()接受显示的第n个页面和per(),在一个页面中显示多少个帖子。在你的观点中,简单的把
<%= render @posts %><!-- You can wrap it with a table and bootstrap classes -->
<%= paginate @posts %><!-- At the end of the page. This will take care of pagination -->
对于渲染帖子,kaminari默认按惯例查找部分_post.html.erb,在views / posts /
中 <tr>
<td><%= post.name %></td>
<td><%= post.title %></td>
<td><%= post.content %></td>
<td><%= link_to 'Show', post %></td>
<td><%= link_to 'Edit', edit_post_path(post) %></td>
<td><%= link_to 'Destroy', post, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
将包含您的帖子内容。请记住,在部分帖子中,您引用的是post
而不是@post
。
答案 2 :(得分:1)
据我所知,没有任何宝石会在你的模板中注入样式。
最简单的解决方案是自己添加引导样式。如果您想要相同的基本结构应用程序,并且您计划使用生成器,则可以自定义相应的模板。
您可以将自定义模板放在lib/templates/TEMPLATE_ENGINE/GENERATOR_NAME/VIEW_NAME.html.ext
例如,要覆盖rails的scaffold生成器的haml视图,您可以创建以下文件:
lib
├── tasks
└── templates
├── haml
│ └── scaffold
│ ├── _form.html.haml
│ ├── edit.html.haml
│ ├── index.html.haml
│ ├── new.html.haml
│ └── show.html.haml
有关自定义生成器的详细信息,请参阅guide。
您只需要替换要自定义的视图的模板。
是一种可以加速rails应用程序启动的方法:自定义表单生成器。这将允许您以熟悉的方式编写表单并为您添加引导程序样板。 simple_form是一个很好的资源。
如果您已经创建/生成了多个视图,则可能更容易手动添加样式。
就分页而言,kaminari似乎是最近的热门,您可以轻松自定义视图(或者可能使用gem来自定义它们)。
请记住,自定义生成器模板,配置simple_form和配置分页可能比简单地手动添加样式更有效。但是,它可以带来长期回报(特别是如果你刚刚开始一个大型项目)。