Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在rails中处理各种模型状态的可用方法是什么_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 在rails中处理各种模型状态的可用方法是什么

Ruby on rails 在rails中处理各种模型状态的可用方法是什么,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在用RoR构建一个web应用程序,它有多种型号。每个型号都有不同的状态,例如: 用户-管理员批准、政府批准、拒绝、暂停、列入黑名单、所有者、承租人 汽车上市,隐藏,批准,拒绝,暂停 我想知道处理各种国家的最佳方式是什么,其中有些国家相互排斥,有些国家可以共存 我知道我们可以使用“状态机”宝石。但我想知道是否有任何行业最佳实践 谢谢 我想知道处理各种状态的最佳方法是什么,其中 有些国家相互排斥,有些国家可以共存 如果有这种情况,请考虑用多个状态列构造模型。i、 e.在你的例子中,我可以想到用户

我正在用RoR构建一个web应用程序,它有多种型号。每个型号都有不同的状态,例如:

用户-管理员批准、政府批准、拒绝、暂停、列入黑名单、所有者、承租人

汽车上市,隐藏,批准,拒绝,暂停

我想知道处理各种国家的最佳方式是什么,其中有些国家相互排斥,有些国家可以共存

我知道我们可以使用“状态机”宝石。但我想知道是否有任何行业最佳实践

谢谢

我想知道处理各种状态的最佳方法是什么,其中 有些国家相互排斥,有些国家可以共存

如果有这种情况,请考虑用多个状态列构造模型。i、 e.在你的例子中,我可以想到用户的状态(由管理员批准、政府批准、拒绝、暂停、黑名单)和类型(所有者、承租人)

至于管理状态和状态之间的不同转换,我建议您看看。非常灵活、干净和智能的状态管理方法

我想知道处理各种状态的最佳方法是什么,其中 有些国家相互排斥,有些国家可以共存

如果有这种情况,请考虑用多个状态列构造模型。i、 e.在你的例子中,我可以想到用户的状态(由管理员批准、政府批准、拒绝、暂停、黑名单)和类型(所有者、承租人)

至于管理状态和状态之间的不同转换,我建议您看看。非常灵活、干净和智能的状态管理方法

我想知道处理各种状态的最佳方法是什么,其中 有些国家相互排斥,有些国家可以共存

如果有这种情况,请考虑用多个状态列构造模型。i、 e.在你的例子中,我可以想到用户的状态(由管理员批准、政府批准、拒绝、暂停、黑名单)和类型(所有者、承租人)

至于管理状态和状态之间的不同转换,我建议您看看。非常灵活、干净和智能的状态管理方法

我想知道处理各种状态的最佳方法是什么,其中 有些国家相互排斥,有些国家可以共存

如果有这种情况,请考虑用多个状态列构造模型。i、 e.在你的例子中,我可以想到用户的状态(由管理员批准、政府批准、拒绝、暂停、黑名单)和类型(所有者、承租人)


至于管理状态和状态之间的不同转换,我建议您看看。非常灵活、干净、智能的状态管理方法。

我同意@thaold对用户状态及其类型的区分。小心地合并实际上相互独立的属性(共存是一个警告信号)——以后很难将它们分开,特别是当它们一起编入一个列表时

如果您不需要/不想要完整的状态机gem,我通常将它们作为常量放在模块中

class User
  module State
    APPROVED_BY_ADMIN      = 'approved_by_admin'.freeze
    APPROVED_BY_GOVERNMENT = 'approved_by_government'.freeze
    # ...
  end

  module LivingSituation
    OWNER  = 'owner'.freeze
    RENTER = 'renter'.freeze
  end
end

class Car
  module State
    LISTED = 'listed'.freeze
    # ...
  end
end

如果您想轻松复制状态机库的某些部分,如
Car#listed?
,我同意@thaold对用户状态及其类型的区分。小心地合并实际上相互独立的属性(共存是一个警告信号)——以后很难将它们分开,特别是当它们一起编入一个列表时

如果您不需要/不想要完整的状态机gem,我通常将它们作为常量放在模块中

class User
  module State
    APPROVED_BY_ADMIN      = 'approved_by_admin'.freeze
    APPROVED_BY_GOVERNMENT = 'approved_by_government'.freeze
    # ...
  end

  module LivingSituation
    OWNER  = 'owner'.freeze
    RENTER = 'renter'.freeze
  end
end

class Car
  module State
    LISTED = 'listed'.freeze
    # ...
  end
end

如果您想轻松复制状态机库的某些部分,如
Car#listed?
,我同意@thaold对用户状态及其类型的区分。小心地合并实际上相互独立的属性(共存是一个警告信号)——以后很难将它们分开,特别是当它们一起编入一个列表时

如果您不需要/不想要完整的状态机gem,我通常将它们作为常量放在模块中

class User
  module State
    APPROVED_BY_ADMIN      = 'approved_by_admin'.freeze
    APPROVED_BY_GOVERNMENT = 'approved_by_government'.freeze
    # ...
  end

  module LivingSituation
    OWNER  = 'owner'.freeze
    RENTER = 'renter'.freeze
  end
end

class Car
  module State
    LISTED = 'listed'.freeze
    # ...
  end
end

如果您想轻松复制状态机库的某些部分,如
Car#listed?
,我同意@thaold对用户状态及其类型的区分。小心地合并实际上相互独立的属性(共存是一个警告信号)——以后很难将它们分开,特别是当它们一起编入一个列表时

如果您不需要/不想要完整的状态机gem,我通常将它们作为常量放在模块中

class User
  module State
    APPROVED_BY_ADMIN      = 'approved_by_admin'.freeze
    APPROVED_BY_GOVERNMENT = 'approved_by_government'.freeze
    # ...
  end

  module LivingSituation
    OWNER  = 'owner'.freeze
    RENTER = 'renter'.freeze
  end
end

class Car
  module State
    LISTED = 'listed'.freeze
    # ...
  end
end
如果您想轻松复制状态机库(如
Car#listed?
)的某些部分,封装它们可以让您在
Car::State.constants
上进行元编程