【问题标题】:Rails 4 - ScopesRails 4 - 范围
【发布时间】:2016-07-11 15:22:24
【问题描述】:

我正在尝试弄清楚如何在 rails 4 中编写范围。

我有一个项目模型。我使用 statesman 来表示状态,并且有一个名为 :publish 的状态。

在我的项目模型中,我想编写一个范围,让所有项目处于发布状态。

我正在尝试:

scope :published, ->{ where(projects.state_machine.in_state?(:publish)) }
scope :published, ->{ where(project.state_machine.in_state?(:publish)) }

我不明白如何编写范围。导轨使我感到困惑。谁能看到我做错了什么?

【问题讨论】:

  • 你能提供更多的模型代码吗?你如何包括政治家宝石?您用于状态存储的列的名称是什么?
  • 类项目
  • 这还不够。您确定要编写自己的范围吗? Statesman 提供了一些内置范围来获取处于提供状态的元素,它是否符合您的需求?
  • 我的项目模型中已经有了这个。但是我不能在我的模型中使用当前状态来编写一个范围,该范围可以挑选出一些状态作为应该在视图中显示的状态相加:delegate :can_transition_to?, :transition_to!, :transition_to, :current_state, to: :state_machine

标签: ruby-on-rails scope


【解决方案1】:

大概是这样的:

class Project

  scope :published, -> { where(state: :publish)

【讨论】:

  • 不 - 那个和所有变体(current_state,in_state?也不起作用。谢谢
猜你喜欢
  • 2016-08-23
  • 1970-01-01
  • 1970-01-01
  • 2016-03-21
  • 2016-07-23
  • 2017-01-15
  • 2015-10-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多