我的模型中有多个社交网络:
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
。
答案 0 :(得分:3)
您可以像这样创建和设置隐藏字段,它应该适用于enum
<%= a.hidden_field :kind, {value: 'skype'} %>
如果用户无法选择,甚至看不到该选项,那么您真的不需要它成为选择标记。