2016-04-03 18 views
0

私が書いたヘルパーメソッドの使い方を理解しようとしています。Rails 4 - helper method

これはプロファイルモデルで問題なく動作しますが、ユーザーモデルではうまく動作しません。

私はuserとroleというモデルを持っています。彼らは持っているものとして関連付けられ、多くに属します。私の役割ヘルパーで

、私が持っている:私は私のユーザーインデックスショーのページで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> 

は、それがレンダリング:

ゲストパス[#]

[]内のビットを削除するにはどうすればよいですか? - 私は役割の名前を表示したいだけです。あなたはusers_controで行う場合も

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

答えて

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 

インデックスページへller.rb、これは各ユーザーのロールを高速に読み込みます。

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