ruby-on-rails - 一对多关系 fom_for 从所有模型属性中取最后 3 个
问题描述
我有一对多的关系(oferta 有很多 sig),我想展示所有 oferta 的最后三个 sig
我尝试了这段代码,但它显示了每个 oferta 的最后 3 个信号
在首页 index.erb
<% @oferta.each do |o| %>
<% if o.sigs.exists? %>
<% for item in o.sigs.order("created_at asc").last(3).each %>
<div class="col-md-4 col-sm-4">
<div class="coll">
<br>
<%= link_to item do %>
<%= image_tag item.image.url(), skip_pipeline: true ,id: "img",height: "200px"%>
<% end %>
<h4><%=link_to item.name,item %></h4>
<p id="comment"><%= item.comment %></p>
<%= link_to "read more..", item %>
<p id="price"><%= item.price %></p>
</div>
</div>
<% end %>
<% end %>
<% end %>
在控制器中
def index
@oferta = Ofertum.unscoped.first(3)
end
在无常模型中
has_many :sigs
在 sig 模型中
belongs_to :ofertum
解决方案
两种方式都可以
@last_3_sigs = Sigs.last(3)
获取最新记录首先使用这个
@last_3_sigs = Sig.order(created_at: :desc).limit(3)
推荐阅读
- jpa - 删除 netbeans 中的实体类后出错(JAVA EE 8、jpa、EclipseLink)
- python - 检查多维列表的一部分是否在单独的多维列表中
- c# - ASP.NET Core AspNetUsers 上的身份
- java - Mockito - Unmocked 方法无法返回对象本身
- sql - 在表事务 SQL 中插入未计算的 Id
- actionscript-3 - 当弹出窗口在 AS3 AIR 中处于活动状态时如何禁用主窗口?
- javascript - Laravel:无法使用请求检索 GET 数据
- spring-boot - @Valid 使用 @ModelAttribute,而不是 @RequestAttribute
- swift - 如何根据登录的人将唯一的用户名添加到标签中?
- ios - IOS-SceneDelegate 方法在第一次后台终止后不起作用