作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有人可以举一个简单的例子来说明如何使用pluginaweek state_machine对于具有事件记录的票证模型?
我不明白文档中的复杂示例。
示例说明:
最佳答案
示例票证模型(未测试)
class Ticket < ActiveRecord::Base
attr_accessible :name, :description
attr_accessible :state_event
validates :name, :presence => true
state_machine :initial => :new do
event :accept do
transition [:new, :feedback] => :accepted
end
event :decline do
transition :new => :declined
end
event :feedback do
transition [:new, :accepted] => :feedbacked
end
event :solve do
transition [:accepted, :feedback] => :solved
end
end
end
<%= f.collection_select :state_event, @ticket.state_transitions, :event, :human_to_name, :include_blank => @ticket.human_state_name %>
<%= ticket.state %>
<% ticket.state_transitions.each do |transition| %>
<%= link_to transition.event, ticket_path(ticket, ticket: {:state_event => transition.event}), :method => :put %>
<% end %>
<ul>
<li class="<%= 'active' if params[:state].blank? %>"><%= link_to 'All', tickets_path %></li>
<% Ticket.state_machine.states.each do |state| %>
<li class="<%= 'active' if params[:state] == state.name.to_s %>">
<%= link_to state.name, tickets_path(:state => state.name) %>
</li>
<% end %>
</ul>
class TicketsController extends ApplicationController
...
def index
@tickets = Ticket.where("state = ?", params[:state])
...
关于ruby-on-rails - 有人可以为pluginaweek - statemachine 提供一个事件记录示例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9559702/
我正在尝试实现将对象转换为 :suspended 状态的“挂起”事件。但我需要能够“取消暂停”,并返回到之前的状态。我在模型中添加了一个 previous_state 字段,但我看不到如何在事件 bl
我是一名优秀的程序员,十分优秀!