我的部分问题是知道如何描述我甚至在做什么,所以请原谅这个潜在的漫步:
好的,所以我需要找到一个地址列表,所以我有一个关系查找,如:
addresses = Address.where("lower(state) LIKE ? AND lower(city) LIKE ?, state.downcase, city.downcase)
这很有效:我从所有地址中获取了一个列表,其中城市和州是传入的值。接下来,我有一个User
,其中包含一个包含所有ID的数组address_ids
与之相关的所有地址。我想找到具有上述查询中找到的任何一个ID的所有用户。首先,我创建一个包含所有这些ID的数组:
id_array = Array.new()
addresses.each do |address|
id_array.push(address.id)
end
然后我接受这个新数组并执行查找具有address_ids
数组的用户,该数组包含id_array
个值中的任何一个。这可以通过以下方式完成:
applicable_users = User.where('address_ids && ?', '{' + id_array.to_s + '}')
这也有效。现在,我有一个符合一组条件的所有地址列表,以及一组符合该条件的用户列表。 NOW 我想创建一个数组(所以我可以把它变成JSON,然后再渲染它),列出每个地址和相应的用户。
我现在这样做的方法是循环遍历applicable_users
,浏览每个address_ids
,找到我想要的address
,并将其推送到新的address_array = Array.new()
applicable_users.each do |user|
user.address_ids.each do |address_id|
selected_address = addresses.find(address_id.to_i)
address_array.push([selected_address..., user.first_name, user.last_name])
end
end
数组,一个la:
ember server
长话短说:这个现在正在运作,但感觉既脆弱又不必要。有没有办法加入这两个ActiveRecord关系,以便我可以跳过循环/恶作剧?
即使经过几个小时的研究,我仍然有点难以开始,所以任何方向都非常感激。
答案 0 :(得分:1)
将名为$('#<%= dom_id(@comment) %>').fadeOut();
的列添加到organization_id
表。
将名为users
的列添加到organization_id
表。
按如下方式配置模型
addresses
然后您的代码将归结为此
// app/models/address.rb
class Address < ApplicationRecord
belongs_to :organization
end
// app/models/user.rb
class User < ApplicationRecord
belongs_to :organization
end
// app/models/organization.rb
class Organization < ApplicationRecord
has_many :users
end
如果您有任何问题,请与我们联系。