如果使用(State_machine或Workflow)在Ruby on Rails应用程序中管理员应用程序后,该帖子将会发布吗?
答案 0 :(得分:1)
我不会打扰state_machine
或workflow
宝石,因为你很少有状态和行为与它们挂钩。
这些宝石更适合运行基于很多州的代码。
只需查看Vehicle
文档中的state_mahcine
示例。
https://github.com/pluginaweek/state_machine#example
我通过简单地使用enum
来实现您之前尝试的目标。
将enum
添加到名为status
的模型中。
enum status: [:draft, :review, :published]
您需要在帖子中添加名为integer
的{{1}}列。
status
现在无论您在哪里发布帖子,只需查询未发布的帖子。
add_column :posts, :status, :integer, default: 0, null: false
我添加了状态@posts = Post.published
,:draft
和:review
,但您可以拥有尽可能少的枚举。