Rails 4 - 如何编写辅助方法来呈现属性名称

时间:2016-08-13 05:37:50

标签: ruby-on-rails helper presenter

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

我试图在集合选择中使用角色名称列表。

,而不是按照记录在数据库中的方式列出:名称

例如,:name在数据库中存储为:admin的实例。我想在集合中选择' Administrator'。

我试着写一个角色助手说:

模块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' %>

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

1 个答案:

答案 0 :(得分:0)

创建一个类级变量,如:

class MyClass 

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

end

然后在视图上访问它们:

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

更多信息:Here