ruby-on-rails – 有人可以为pluginaweek – statemachine提供一
发布时间:2020-12-17 03:02:21 所属栏目:百科 来源:网络整理
导读:有人可以给出一个简单的例子,说明如何使用 pluginaweek state_machine作为具有活动记录的票证模型吗? 我不明白文档中复杂的例子. 示例说明: 新 – 接受,拒绝,反馈 已接受 – 解决或反馈 反馈 – 接受或解决 解决方法 示例票证模型(未测试) class Ticket Ac
有人可以给出一个简单的例子,说明如何使用
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]) ... (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |