我是state_machine的新手,我正在尝试使用它来为作业申请流程建模。
对于特定州,有可能由申请人或雇主触发的事件。有没有办法标记一个事件来表明这一点?例如,我希望能够获得雇主可以触发的所有转换的列表,因此当雇主登录时,她只能看到雇主可以对应用程序采取的可用操作。 / p>
或者如果有更好的模型,我很想知道。
答案 0 :(得分:0)
您可以使用cancan
之类的额外宝石来对此方法进行一些授权。
几天前我遇到了一个相关的问题,得到了这个很好的答案:
Is it possible to use cancan in a model?
我想出了类似的东西:
# view
...
<% user.state_transitions.each do |transition| %>
<% if can? "#{transition.event}".to_sym, User %>
<%= link_to transition.event, user_path(user, user: {:state_event => transition.event}), :method => :put%>
<% end %>
<% end %>
...
您还必须在控制器更新方法中进行检查。