ruby-on-rails - 检索和显示 Active Record 数据
问题描述
我想在我的主页上显示一些东西,所有东西都是从数据库中的不同表中提取的,只是想看看最好的方法。
通过阅读https://guides.rubyonrails.org/v2.3.11/active_record_querying.html,我能够让它显示正确的细节,但这是最好的方法吗?这种方法是否存在性能问题?
<% about = Page.find(1) %>
<h1 class="title"><%= about.title %></h1>
<% unless about.subtitle.blank? %>
<h2 class="subtitle"><%= about.subtitle %></h2>
<% end %>
<p><%= about.body %></p>
在类似的主题上,迭代和显示数据的最佳方式是什么?这就是我想要实现的目标:
<div class="tabs">
<ul>
<% Chapter.all.each do |c| %>
<li><a><%= chapter.title %></a></li>
<% end %>
</ul>
</div>
非常感谢任何提示!
解决方案
为达到这个
<div class="tabs">
<ul>
<% Chapter.all.each do |c| %>
<li><a><%= c.title %></a></li>
<% end %>
</ul>
</div>
有几件事必须存在:
第一步
您需要有一个模型或数据集来表示您的数据,例如,您可能有一个 Person.rb 文件,其中包含名称和头发颜色作为属性。这可以是你的模型,它所做的只是定义一个数据集。
class Person < ApplicationRecord
scope :latest_Person, -> { order(date: :desc) }
validates :name, presence: true, length: { minimum: 5 }
validates :haircolor, presence: true
end
第二步
您需要在控制器类中声明或实例化该模型,例如您可能需要按特定顺序显示人员列表。这可以使用scopes
. 例子
def persons
# Render all persons
@persons_all = Person.latest_Person
end
第三步
从视图中的控制器类调用声明的对象。基本上你所做的就是引用声明的对象。例子
<% if @persons_all.empty? %>
<h2>No persons available</h2>
<% else %>
<% @persons_all.each do |p| %>
<p><%= p.name %></p>
<p><%= p.haircolor %></p>
<% end %>
<% end %>
标记为答案是否有帮助,谢谢。
推荐阅读
- android - 图像未显示在回收站视图中
- c++ - 连接 C++ 和 Node JS
- ubuntu - WSL2:为什么我必须在重启 PC 后关闭 WSL 才能重启 WSL
- javascript - 对 ruby 服务器的 Ajax 查询
- html - SVG 地图的 Django CSS 问题
- algorithm - 平滑排序算法在哪里使用?
- wordpress - 如何为标题块添加检查器控件?
- android - Kotlin 中如何将拍摄的照片放入 RecyclerView
- angular - Angular 7 及更高版本:注入两个组件的服务不像单例
- python - 我运行 pip freeze | xargs pip uninstall -y 在命令提示符下。会影响我的电脑吗?