我有订单模型。但为此我需要介绍一些编辑。我需要做选择列表并将其放入模型文件中,例如
id | name
当我创建新订单时,我将 db 作为 orderstatus_id 放入例如 1。当我在管理面板中看到此值时,我想查看名称。但是如何在没有任何数据库表的情况下做到这一点?另外例如,当我更改管理面板订单状态时,我会看到此选择列表...
所以我需要对模型、控制器和视图进行更改……但是如何执行我在下面描述的操作?我也明白这听起来像是一个广泛的问题,但不,不是。
我有订单模型。但为此我需要介绍一些编辑。我需要做选择列表并将其放入模型文件中,例如
id | name
当我创建新订单时,我将 db 作为 orderstatus_id 放入例如 1。当我在管理面板中看到此值时,我想查看名称。但是如何在没有任何数据库表的情况下做到这一点?另外例如,当我更改管理面板订单状态时,我会看到此选择列表...
所以我需要对模型、控制器和视图进行更改……但是如何执行我在下面描述的操作?我也明白这听起来像是一个广泛的问题,但不,不是。
选择助手旨在处理可枚举的对象(响应每个对象)。通常它们是 AREL 结果对象的数组,但它们不是必须的。你可以这样做:
<%= f.select :thing , [['Big Thing',1],['Medium Thing',2],['Huge Thing',3]] %>
或者你可以这样做:
config/initializers/thing.rb:
$mythings = [['Big Thing',1],['Medium Thing',2],['Huge Thing',3]]
然后你可以这样做:
<%= f.select :thing, $mythings %>
您要的是非 SQL 数据库吗?您可以使用 mongodb(mongoid 是 gem 名称)这里是文档。
您应该创建一个带有name
字段的 OrderStatus 模型。然后你的 Order 模型应该声明has_one :order_status
. 然后,您可以使用@order.order_status.name
按名称获取订单状态。然后您的选择助手将类似于:
select("foo", "orderstatus_id", OrderStatus.all.collect {|os| [ os.name, os.id ] })