2016-04-03 66 views
0

我想弄清楚如何使用我写的帮助器方法。Rails 4 - 帮手方法

它可以在配置文件模型中正常工作,但它不能正常工作,因为我希望它在用户模型中运行。

我有叫做用户和角色的模型。他们是联系在一起的,属于很多人。

在我的角色帮手,我有:

模块RolesHelper

def text_for_role(name) 
    case name 
     when 'guest' 
     'Guest Pass' 
    end 
end 

在我的用户指标显示的网页我有:

<% @users.each do |user| %> 


       <%= user.roles.each do |role| %> 
       <%= text_for_role(role.name)%> 
       <% end %>     
      </td> 

当我尝试这一点,它呈现:

访客通行证[#]

我如何摆脱[]中的位? - 我只想显示角色名称。

回答

0

变化

<%= user.roles.each do |role| %> 

<% user.roles.each do |role| %> 
0
module RolesHelper 
    @roles = { 
    'Guest' => 'Guest Pass', 
    'Admin' => 'Admin pass', 
    } 

class << self 
    def list 
    @roles.map{|k,v| [k,v] } 
    end 

    def role(str) 
    return @roles[str] 
    end 
end 
end 

索引页:

<%= user.roles.each do |role| %> 
     <% RolesHelper.role(role)%> 
<% end %> 

此外,如果你在users_contro做ller.rb,这将为每个用户加载角色的速度更快。

def index 
    @users = User.includes(:role) 
end