2016-04-03 18 views
0

Yazdığım bir yardımcı yöntemin nasıl kullanılacağını anlamaya çalışıyorum.Raylar 4 - yardımcı yöntem

O ı kullanıcı modelinde bunu istediğiniz gibi ancak çalışmıyor, profil modelinde çalışıyor.

Kullanıcı ve rol denilen modellere sahibim. Onlar sahip oldukları ve birçok kişiye aittirler. benim rolüm yardımcı olarak

, ben:

modül benim kullanıcı endeksi gösterisi sayfasında

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

Ben RolesHelper: Bunu çalıştığınızda

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


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

, bu işler:

Misafir Geçiş [#]

[] içindeki bitlerden nasıl kurtulurum? - Sadece rol ismini göstermek istiyorum. Eğer users_contro yapmak Ayrıca

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

:

cevap

0

Değişim

<%= 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 

Endeksi sayfaya Her kullanıcı için rolleri daha hızlı yükleyen ller.rb.

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