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