Gen*_*ure 4 workflow rubygems ruby-on-rails
我开发了Ruby on Rails应用程序,现在正在寻找允许配置状态而无需任何编程的工作流gem.
我发现了一些宝石:rails_workflow,state_machine,工作流程.
但据我所知,这些宝石假设状态将是硬编码的,例如工作流宝石状态:
class Article
include Workflow
workflow do
state :new do
event :submit, :transitions_to => :awaiting_review
end
state :awaiting_review do
event :review, :transitions_to => :being_reviewed
end
state :being_reviewed do
event :accept, :transitions_to => :accepted
event :reject, :transitions_to => :rejected
end
state :accepted
state :rejected
end
end
Run Code Online (Sandbox Code Playgroud)
我需要我的应用程序用户状态可以自己配置状态和转换条件,而无需开发人员.
Redmine已经有了这个功能,但它是现成的系统,而不是我可以连接到我的应用程序的gem
有没有这些功能的宝石?
我之前的评论设计了以下解决方案.使用gem state_machine,然后您可以使用ActiveRecord定义状态机的转换,如下所示:
使用列,"到","从"和"打开"定义过渡模型.它们都将string作为数据类型.
州将定义如下:
Transition.create(:from => "parked", :to => "idling", :on => "ignite")
Run Code Online (Sandbox Code Playgroud)
在此之后,您需要修改您的过渡方法,如下所示:
def transitions
transitions_data = []
Transition.all.each do |transition|
transitions_data << { transition.from.to_sym => transition.to.to_sym, :on => transition.on.to_sym }
end
transitions_data
end
Run Code Online (Sandbox Code Playgroud)
显然,如果你有多台机器,你可以使用其他一些列,例如'machine_name',并在那里存储机器名,只获取那些行.
正如回答此问题的原始人所说:"这只是一个例子,可以进一步优化.我会把这部分留给你.希望这会给你一个良好的开端."
我希望这能指出你正确的方向.
资源:
| 归档时间: |
|
| 查看次数: |
1570 次 |
| 最近记录: |