检索并显示活动记录数据

时间:2019-03-03 04:11:10

标签: ruby-on-rails

我想在我的主页上显示很多东西,所有东西都从数据库中的不同表中拉出,只是想看看做这件事的最佳方法。

通读https://guides.rubyonrails.org/v2.3.11/active_record_querying.html,我能够显示正确的详细信息,但这是最好的方法吗?这种方法会带来性能问题吗?

from itertools import combinations

inp = [18,0,2,20]
length = 2
sum_ = 20

def isSubsetSum(data, length, sum_):
    data = [i[0]+i[1] for i in combinations(data,length)]
    if sum_ in data:
        return True
    return False

print(isSubsetSum(inp,length, sum_))

在类似的主题上,迭代和显示数据的最佳方法是什么?这是我想要实现的:

<% 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>

任何提示都非常感谢!

1 个答案:

答案 0 :(得分:0)

要实现这一目标

<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 %>

标记为答案是否有帮助,谢谢。