![](/img/trans.png)
[英]How to input a Decimal value to a hidden simple form field - Ruby on Rails
[英]How do I specify a specific enum value as a hidden field using Simple Form?
我有一个PortStock.rb
模型,具有以下枚举:
class PortStock < ApplicationRecord
enum action: [ :buy, :sell ]
end
我想做的是在表单的部分内容上,我想将PortStock.buy
或PortStock.sell
为隐藏字段(这将由与表单一起发送的参数确定)。
我不知道在下面的input_field
的value:
属性中放置什么。
<%= f.input_field :action, as: :hidden, value: ??? %>
思考?
该文档说:
...
最后,还可以使用哈希显式映射属性和数据库整数之间的关系:
class Conversation < ActiveRecord::Base enum status: { active: 0, archived: 1 } end
请注意,使用数组时,从值到数据库整数的隐式映射是根据值在数组中出现的顺序得出的。 在示例中,
:active
被映射为0
因为它是第一个元素,而:archived
被映射为1
。 通常,第i
个元素在数据库中映射到i-1
。因此,一旦将值添加到枚举数组,就必须保持其在数组中的位置,并且仅应将新值添加到数组的末尾。 要删除未使用的值,应使用显式哈希语法。
在极少数情况下,您可能需要直接访问映射。 映射是通过具有复数属性名称的类方法公开的,该方法在
HashWithIndifferentAccess
返回映射:Conversation.statuses[:active] # => 0 Conversation.statuses["archived"] # => 1
...
这意味着您可以通过2种方式之一解决您的问题。
<%= f.input_field :action, as: :hidden, value: 0 %>
<%= f.input_field :action, as: :hidden, value: PortStock.actions[:buy] %>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.