代码之家  ›  专栏  ›  技术社区  ›  Greg

Rails:如何在有状态模型中表示可用的视图操作?

  •  0
  • Greg  · 技术社区  · 14 年前

    我有一个有状态的模型。在每个状态中,都有一组用户可能希望在模型实例上执行的操作。目前,我正在将模型状态转换为使用视图助手在视图中表示的操作。

    像这样的…在模型中:

    Class Thing
    
      def state_is_A?
        state == 'A'
      end
    
    end
    

    帮手:

    def display_available_actions(thing)
      if thing.state_is_A?
        link_to <action1>
        link_to <action2>
      end
    end
    

    在视图中:

    <%= display_available_actions(@thing) %>
    

    我不喜欢将模型状态转换为帮助器中的视图操作这一事实。我想把这个纳入模型。另一方面,它似乎不健康的模型和视图得到这样的耦合。

    是否有比我的方法更适合这种情况的Ruby或Rails习惯用法?也许每个州都应该是一个单独的模型?

    1 回复  |  直到 14 年前
        1
  •  1
  •   Thomas R. Koll    14 年前

    我总是用 aasm 给你那些 state_is_A? 自动以及 SomeModel.states 以及有关可用转换的信息。