2016-04-03 91 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