0

我有一个角色表,其中包含一个属性 :name 。

我正在尝试在集合选择中使用角色名称列表。我不想以它在数据库中记录的方式列出 :name,而是想整齐地呈现它。

例如,:name 有一个实例在数据库中存储为 :admin。我想在集合中将其显示为“管理员”。

我试图写一个角色助手,上面写着:

模块 RolesHelper

def text_for_role(name)
  case name
      when 'guest'
        'Guest - Trial Account'
      when 'admin'
        'Administrator'
      when 'representative'
        'Representative'
         etc, etc

但是这个选项在这种情况下不起作用,因为我想列出所有角色,但参考它们写得很好。

我有这个集合选择:

<%= select_tag "roles", options_from_collection_for_select(@roles, "id", "<%= text_for_role(name)%>"), :multiple => true, :class => 'chosen-select form-control' %>

谁能看到我如何编写可用于整个集合选择选项列表的助手或演示者?

4

1 回答 1

0

创建一个类级别变量,例如:

class MyClass 

   ROLES = [
      ['Guest - Trial Account' ,'guest' ],
      ['Administrator' , 'admin'],
      ['Representative' , 'representative']
   ]

end

然后在视图上访问它们:

<%= select_tag 'roles', MyClass::ROLES %>

更多信息:这里

于 2016-08-13T06:05:44.347 回答