【问题标题】:Checking for ruby enums from another object检查来自另一个对象的 ruby​​ 枚举
【发布时间】:2017-08-07 17:38:14
【问题描述】:

我有两个对象,Topic 和 Blogs,Blogs 有一个枚举,用于判断它是否已发布。在我网站的侧边栏中,我有一个主题列表,可查看为:

<% @sidebar_topics.each do |x| %>
  <hr>
  <li><%= link_to x.title, topic_path(x) %></li>
<% end %>

但是其中一些是空白的,所以我将@sidebar_topics = Topic.with_blogs 放入控制器中,该控制器删除了指向没有博客的主题的链接,但是,我有一些未发布的博客,意思是:链接存在是因为有博客,但我不希望它存在,因为它拥有的博客仍处于草稿模式,因此无法查看,这使得页面看起来像是链接到一个空主题...

我不完全确定要分享什么信息,我所追求的只是让链接(@sidebar_topics)包含已发布博客的主题。

【问题讨论】:

  • 贴出with_blogs方法的代码

标签: ruby-on-rails ruby enums


【解决方案1】:
class Topic < ActiveRecord::Base  
  scope :with_published_blogs, -> { joins(:blogs).where(blogs: { status: 'published' }) }
end

@sidebar_topics = Topic.with_published_blogs

仅以status: 'published' 为例,假设您的Blog 枚举类似于enum status: [:published, :draft]。用您自己的实际 enum 条件填写已发布博客的内容。

【讨论】:

  • 该死,添加一个范围......现在我觉得很愚蠢,但是谢谢!
猜你喜欢
  • 1970-01-01
  • 2012-07-07
  • 2021-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-16
  • 2019-02-18
  • 2021-04-11
相关资源
最近更新 更多