如何进行多级公会?

2024-01-12

我有这个设置:

Continent -> Country -> City -> Post

我有

class Continent < ActiveRecord::Base
   has_many :countries
end

class Country < ActiveRecord::Base
  belongs_to :continent
  has_many :cities
end

class City < ActiveRecord::Base
  belongs_to :country
  has_many :posts
end

class Post < ActiveRecord::Base
  belongs_to :city
end

我怎样才能让所有大洲都通过这个协会发帖

Like:

@posts = Post.all

@posts.continents #=> [{:id=>1,:name=>"America"},{...}] 

你可以这样做:

Continent.all(:joins => {:countries => {:cities => :posts}}).uniq

Or this:

class Continent < ActiveRecord::Base
  has_many :countries

  named_scope :with_post, :joins => {:countries => {:cities => :posts}}
end

# And then
Continent.with_post.uniq

Or this:

Post.all(:include => {:city => {:country => :continent}}).map { |post| post.city.country.continent }.uniq

Or this:

class Post < ActiveRecord::Base
  belongs_to :city

  named_scope :include_continent, :include => {:city => {:country => :continent}}

  def continent
    city.try(:country).try(:continent)
  end
end

# And then
Post.include_continent.map(&:continent).uniq
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何进行多级公会? 的相关文章

  • 如果你使用belongs_to而没有相应的has_one,会发生什么?

    我有一个核心模型Item 以及一个从自定义源 例如 RSS feed 填充它的脚本 在 feed 中 每个项目都用一个标识guid 在我的系统中 项目只有一个自动生成的id首要的关键 我想要 比方说 ItemFeedInfo那个地图guid
  • 装饰 Rails 中的属性

    我有一个name上的属性Person模型 每次我访问name属性 我想要name capitalize被退回 在模型内执行以下操作将不起作用 def name name capitalize end 那么还有什么选择呢 我建议您使用自定义格
  • 没有 Gem 的 Rails 分页

    我的任务是在不使用 gem 的情况下为 Rails 项目创建 前 10 个 后 10 个 最新 和 最旧 链接 在控制器中 我可以显示表中第一组 最新的 10 项 before action set page only index def
  • Rails 应用程序中区域设置文件的组织

    我目前有以下4个文件配置 语言环境我的根应用程序 en yml de yml simple form en yml simple form de yml In my 应用程序 rb它驻留在一个规格 虚拟用于测试应用程序 gem 的文件夹我有
  • Rails3 SQL 日志记录输出在单独的文件中

    我希望将所有 ActiveRecord SQL 日志记录重定向到不同的文件中 将其放在控制台或 log development log 中有点混乱 怎么做 我希望将其放在 log development sql log 文件中 Thanks
  • 正则表达式检查 ruby​​ 中的字母数字字符串

    我正在尝试验证 ruby 中的字符串 任何包含空格 下划线或任何特殊字符的字符串都将无法通过验证 有效字符串应仅包含字符 a zA Z0 9 我的代码看起来像 def validate string regex a zA Z0 9 if s
  • Rails 创建 schema_migrations - Mysql2::Error: 指定的键太长

    我正在使用Rails 3 2 6和Mysql 6 0 9 但我在MySQL 5 2 25上有完全相同的错误 当我创建新数据库时 rake db create 然后当我尝试加载架构时 rake schema load 我收到此错误 Mysql
  • 回形针:从带扩展名的 url 上传

    我想通过 S3 存储上的回形针从 URL 上传图片 我与 Ruby 1 9 3 Rails 3 2 6 paperclip 3 1 3 aws sdk 1 3 9 我有我的图片模型 class Asset has attached file
  • 表单元素的自定义 HTML 错误包装器

    我想找到一种方法来自定义默认错误html div class field with errors div 参加我自己的课程 div class clearfix error div
  • 设计和自定义 Rails 用户 URL

    我目前正在使用 Rails 3 2 5 和最新的 devise gem 目前用户可以访问他们的个人资料页面 example com users john doe 我想删除网址的用户部分 因此网址将是example com john doe
  • Rails 3:用户创建自定义表单?

    我正在尝试思考如何允许用户创建具有所有字段类型的自定义表单 如果有一颗宝石那就太好了 但我似乎无法在任何地方找到它 所以我有一个像这样的数据库设置 t integer form id t string name t string hint
  • 资产:预编译 - 权限被拒绝 - 仅在一台计算机上

    我的 dropbox 文件夹中有一个 Rails 应用程序项目文件夹 我在 2 台电脑上工作 家用电脑和笔记本电脑 均为 win 7 If I do bundle exec rake assets precompile在电脑上运行正常 我看
  • 如何最好地将地址关联到 Rails 中的多个模型?

    这个问题 https stackoverflow com questions 648463 best way to model customer addresson SO 似乎与我的问题有关 但我不确定我的问题是否得到了回答 一个地址可以属
  • Yii2:无法将列值更新+1

    创建新记录时 我需要将列值更新 1 public function actionCreate model new CreateBookings if model gt load Yii app gt request gt post Yii
  • Rails 3 按字段排序和最后

    您好 我对 Rails 3 2 和订购有疑问 当想要按字段对集合进行排序时 调用时 last ActiveRecord行为怪异 gt gt User order FIELD id 1 User Load 0 4ms SELECT users
  • 如何将对象从 rake 任务传递给 Rabl 视图

    我正在尝试使用 rabl 从 rake 任务创建 json 文件 下面我有一个简化版本来测试 当我通过 url 查看 articles json 或 articles 2 json 时 我得到了预期的 json 响应 但是当我尝试通过 ra
  • 如何将 CarrierWave 文件迁移到新的存储机制?

    我有一个 Ruby on Rails 站点 其中包含使用 CarrierWave 进行文件处理的模型 当前使用本地存储 我想开始使用云存储 并且需要将现有的本地文件迁移到云端 我想知道是否有人可以指出这样做的方法 使用模型属性的好处是 它允
  • 多步ActiveRecord的模型验证

    考虑具有以下字段的用户模型 名字 必填 姓氏 必填 电子邮件 必填 要求输入密码 电话 必填 大小 10 位数字 地址 必填 以及包含以下步骤的多步骤注册表单 第一步 包含 名字 姓氏 和 电子邮件 字段 第二步输入密码 电话和地址 您将如
  • A has_many Bs 其中 B 没有主键

    我有型号 A 和 B A has many B 并且 B 属于 A 到目前为止 一切都很好 除了我指定 B 没有主键 我不打算修改或删除单个 B 行 并且我预计会有数百万到数十亿的 B 行 因此省略主键将非常方便 节省空间 创建 B 表的迁
  • 从 3.1 返回后加载 Rails 3(服务器)时出现问题

    Rails 完全菜鸟 我正在使用 Hartl 教程 到了第 4 章 CSS 4 1 2 一切看起来都很顺利 但遇到了一个问题 使页面上的文字看起来

随机推荐

  • 转换为自动引用计数 (ARC):“使用未声明的标识符”错误

    在一个非常大的项目中 我到处都使用了自动合成的属性 MyClass h file interface MyClass NSObject property nonatomic retain NSString deviceName proper
  • 如何直接从 UIWebView 将登录信息传递到网站而不需要再次登录?

    我想使用 UIWebView 在我的 iPhone 应用程序中打开一些网站 该网站需要用户名和密码 我有这些用户名和密码 我想知道是否可以在 UIWebView 中打开网站而无需任何登录屏幕 我的意思是 因为我已经有了用户名和密码 我可以使
  • 如何防止 Java 中出现 403 HTTP 错误代码?

    我使用简单的代码来获取htmlhttp www ip adress com http www ip adress com 但它显示错误http代码403 我在其他网站 例如google com 的程序中尝试过 它可以工作 我也可以在浏览器中
  • 如何使用 R formattable 包更改表标题行的外观

    我正在使用 R 中的 formattable 包来生成 HTML 表 我可以使用格式化程序来自定义表中数据值的外观 例如字体大小 颜色等 但我不知道如何更改表标题行的外观 我可以使用 col names 更改实际的列名称 但无法更改它们的外
  • 在java中获取模式值

    有人知道如何从数组中获取模式值吗 例如 如果我有一个数字不同的数组 我如何使用Java来查找出现次数最多的数字 完成时间为 O n 而不是 O n 2 需要长度 gt 0 的数组 public static int getMode int
  • 在 GDB 中创建 C++ 字符串

    我在创建时遇到问题std string 或者任何 C 对象 我猜 在 GDB 中 我尝试了以下多种变体 但似乎都不起作用 gdb p std string hello A syntax error in expression near he
  • 迭代 json 对象来绘制柱形图?

    I use google load visualization 1 packages columnchart google setOnLoadCallback drawChart function drawChart response al
  • NodeJS 中用于 API 的存根 DynamoDB

    我在存根 DynamoDB 调用以进行 API 测试时遇到问题 我正在使用无服务器摩卡 想要从端到端的角度测试我的 API 项目结构并不简单 但在 API 文件本身内部 我对不同的类文件进行了单独的调用 以实际使用 DynamoDB 函数
  • malloc: *** 对象错误: 未分配被释放的指针 *** 在 malloc_error_break 中设置断点进行调试

    有人可以帮我弄清楚我在哪里收到此错误吗 我知道这可能是双重删除或类似的事情 对于背景 这是霍夫曼树的实现 您可以轻松地实现维基百科 http en wikipedia org wiki Huffman coding CharCountNod
  • 仅在底部 UIView 上设置阴影

    我想在 UIView 上创建仅底部的阴影 现在使用此功能 将在顶部 底部 左侧和右侧创建阴影 func setCardView view UIView view layer masksToBounds false view layer sh
  • 动画后如何保持样式? [复制]

    这个问题在这里已经有答案了 我正在制作一个作品集 以便在我申请下一次学习时展示 由于我们生活在 2012 年 它有大量精美的动画和 CSS3 垃圾 只是为了给他们 我们需要这个家伙 的感觉 我现在遇到一个小问题 这是特定元素的一小部分 Th
  • System.InvalidOperationException:Android 上全局不支持 PushAsync

    我正在关注这个 Xamarin Forms快速入门指南 https developer xamarin com guides xamarin forms getting started hello xamarin forms multisc
  • 1052: 字段列表中的列“id”不明确

    我有2张桌子 tbl names and tbl section它同时具有id场在他们之中 我该如何选择id字段 因为我总是收到此错误 1052 Column id in field list is ambiguous 这是我的查询 SEL
  • 在模板类中实现 >> 和 << 运算符的重载

    我正在尝试编写函数定义 以在类定义之外重载运算符 gt gt 和 1 gt Source obj error LNK2019 unresolved external symbol class std basic istream
  • 从Python中的循环输出中删除重复的结果

    我的循环数据生成一系列字符串 这些字符串是从数据库检索的句子 但是 我在数据库中的数据结构需要有重复项 但我想在输出中忽略重复项 假设我的循环和结果如下 for text in document print text Output He g
  • 主屏幕顶部带有 FLAG_NOT_TOUCH_MODAL 标志的 Android 活动

    我正在使用 FLAG NOT TOUCH MODALset 进行 Android 活动 我的活动是半透明的 不是全屏的 我只想将活动窗口边界之外的触摸事件绕过到底层活动 我能够成功绕过该事件 以便当我的活动位于其之上时我可以滚动底层活动 我
  • 根据打字稿中的属性对对象数组进行排序

    我在表中显示了一个包含 请求 类型项目的数组 我想对表的列进行排序 因此我计划为每个列标题创建一个单击方法 此方法根据该列中显示的属性值对数组进行排序 public sortProduct void this requests sort a
  • Qt4 的命令行解析器

    我正在寻找 Qt4 的命令行解析器 我做了一个小的谷歌搜索 发现了这个 但是它缺乏对 enable foo 和 disable foo 开关的支持 除此之外 它看起来像是一个真正的赢家 EDIT 看来Frologic 删除了这个 因此 我看
  • 具有即时应用程序的 Android 架构组件

    我想让我的应用程序为即时应用程序做好准备 我创建了一个应用程序模块 基本模块和一个功能模块 如果我在此配置中运行我的项目 一切都会很好 当我在基本模块 Gradle 文件中实现以下几行时 annotationProcessor androi
  • 如何进行多级公会?

    我有这个设置 Continent gt Country gt City gt Post 我有 class Continent lt ActiveRecord Base has many countries end class Country