从枚举模型中设置Rails表单隐藏字段

时间:2014-07-29 21:59:58

标签: ruby-on-rails forms enums hidden-field

我的模型中有多个社交网络:

class Social < ActiveRecord::Base
  enum kind: [ :twitter, :google_plus, :facebook, :linked_in, :skype, :yahoo ]
  belongs_to :sociable, polymorphic: true
  validates_presence_of :kind
  validates_presence_of :username
end

我想在我看来使用这样的东西。

<%= f.fields_for :socials do |a| %>
  <%= a.select  :kind, Social.kinds.keys, selected: :skype %><br />
  Skype ID: <%= a.text_field :username %>
<% end %>

但是我希望强制使用skype,而不是用户可修改。所以我试图将其切换为hidden_field标记。但是我没有运气。

因此,用户只能看到带有用户名输入框的“Skype ID”标签,他们看不到隐藏字段中选择的kind

1 个答案:

答案 0 :(得分:3)

您可以像这样创建和设置隐藏字段,它应该适用于enum

<%= a.hidden_field :kind, {value: 'skype'} %>

如果用户无法选择,甚至看不到该选项,那么您真的不需要它成为选择标记。