【发布时间】: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