Rails确实为模型选择了帮助器

时间:2012-11-05 16:45:12

标签: ruby-on-rails select map model

我有订单模型。但对于它我需要介绍一些编辑。 我需要做选择列表并将其放在模型文件中,例如

id | name

当我创建新订单时,我将db作为orderstatus_id放入例如1。 当我在管理面板中看到此值时,我想看到名称。但是没有任何db表怎么做呢? 另外,例如当我更改管理面板订单状态时,我会看到此选择列表...

所以我需要改变模型,控制器和视图......但是如何做我在下面描述的内容? 另外我明白这听起来很宽泛,但不是,它不是。

3 个答案:

答案 0 :(得分: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 %>

答案 1 :(得分:0)

您要求的是非SQL数据库吗?你可以使用mongodb(mongoid是宝石名称)here是doc。

答案 2 :(得分:0)

您应该创建一个带有name字段的OrderStatus模型。然后您的订单模型应声明has_one :order_status。然后,您可以使用@order.order_status.name按名称获取订单状态。然后你的选择助手将是:

select("foo", "orderstatus_id", OrderStatus.all.collect {|os| [ os.name, os.id ] })