我将category
的{{1}}属性设为viewable
enum
当用户编辑此属性时,我应该如何在class Category < ActiveRecord::Base
enum viewable: [:only_self, :friends, :anyone]
end
中访问它们?有点像?
_form
UPDATE ------
<%= form_for(@category) do |f| %>
<%= f.select(:viewable) %>
<% end %>
<%= f.select(:viewable, options_for_select([["description1", "only_self"], ["description2", "friends"], ["description3", "anyone"]])) %>
中,form_for
不会显示此字段的当前值。它始终是第一个f.select
。 答案 0 :(得分:2)
使用复数形式时,rails提供完整的键/值数组,因此您可以为数组调用Category.viewables
,并且在options_for_select
的帮助下,您将获得良好的功能下拉列表
<%= form_for(@category) do |f| %>
<%= f.select(:viewable, options_for_select(Category.viewables)) %>
<% end %>
更新了答案
每个的描述都是相当重复的,因为我需要把它 每当我需要显示时,不仅仅是在表单中。我应该在哪里 放他们?
您可以使用I18n
库,假设您的语言环境是中文(我认为),那么您可以创建/config/locales/zh.yml
并添加类似的内容
categories:
viewable:
only_self: 'some chinese text'
friend: 'more chinese text'
anyone: 'well you know'
然后更好地创建一个返回本地化选项
的帮助器def options_for_viewables
{
t('categories.viewable.only_self') => 0,
t('categories.viewable.friends') => 1,
t('categories.viewable.anyone') => 2
}
end
视图将变为这样
<%= f.select(:viewable, options_for_viewables) %>