0
我是state_machine的新手,並試圖用它來建模作業應用程序進程。將附加屬性附加到state_machine事件
對於一個給定的狀態,有可能發生的事件可以由申請人或僱主觸發。有沒有辦法標記一個事件來表明這一點?例如,我希望能夠得到僱主可以觸發的所有轉換的列表,因此當僱主登錄時,她只能看到僱主可以採取的可用行動。
或者如果有更好的模型,我很想知道。
我是state_machine的新手,並試圖用它來建模作業應用程序進程。將附加屬性附加到state_machine事件
對於一個給定的狀態,有可能發生的事件可以由申請人或僱主觸發。有沒有辦法標記一個事件來表明這一點?例如,我希望能夠得到僱主可以觸發的所有轉換的列表,因此當僱主登錄時,她只能看到僱主可以採取的可用行動。
或者如果有更好的模型,我很想知道。
你可以使用額外的寶石cancan
todo這種方法的一些授權。
我有一個相關的問題,前幾天,得到了這個漂亮的答案:
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 %>
...
你必須同時檢查這控制器更新方法。
有一個直接的方法'user.state_events',它返回所有可以從當前狀態調用的位置事件。 – Musaffa 2014-05-03 12:02:15