gpt4 book ai didi

ruby-on-rails - rails : check presence of nested attribute

转载 作者:行者123 更新时间:2023-12-04 06:30:37 25 4
gpt4 key购买 nike

如果我有以下嵌套模型关系(全部 has_many):国家 < 城市 < 街道 < 家

在显示 View 中,我如何检查特定国家/地区是否有房屋?

编辑:添加建议的使用 map 方法链接的方法(首先尝试映射到街道)。至此不限制记录

<% @countries.each do |country| %>
<% if country.cities.map(&:streets).any? %>
....
<% end %>
<% end %>

最佳答案

您可以调用或 @country.cities.map(&:streets).flatten.map(&:homes).present?@country.cities.map(&: streets).map(&:homes).any?

<% if @country.cities.map(&:streets).flatten.map(&:homes).flatten.any? %>
Tro-lol-lo yo-lo-puki
<% end %>

您也可以将这一长行包装到您的模型方法中:

class Country < ActiveRecord::Base
def any_homes?
cities.map(&:streets).flatten.map(&:homes).flatten.any?
end
end

用法

<% if @country.any_homes? %>
Tro-lol-lo yo-lo-puki
<% end %>

当然,它看起来像是一个很好的重构数据结构! 它要重构!

关于ruby-on-rails - rails : check presence of nested attribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5703358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com