2012-04-12 12 views
0

ich ein Benutzermodell haben, die eine verknüpfte Spalte hat, die ich als additional_column zu verweisen, wenn ich versuche, die Ansichten/Benutzer aufrufen/_showcase.html.erb TeilRails 3 korrekt mit dynamischen Spalten

Für die komplette Hintergrundgeschichte siehe Rails 3 noob questions using partials correctly, als ich gebeten wurde, die Fragen in zwei Posts zu teilen.

views/users/_showcase.html.erb

<td><img src="<%= user.avatar_url(32) %>" /></td> 
<td><%= user.username%></td>  
<% additional_columns.each do |column| %> 
    <td><%= user[column]%></td> 
<% end %> 

Hier ist, wie ich die berechnete Spalte auf meinem Benutzermodell

class User < ActiveRecord::Base 

    include ActionView::Helpers::DateHelper 

    ... snip ... 

    # Get the last 10 users who made Karmunity accounts 
    scope :get_newest_users , order("created_at desc").limit(10); 

    # Get 10 users with the highest karma score 
    scope :get_highest_rated_user, order("karma_score desc").limit(10); 

    scope :avatar_url 
    scope :joined 

    # get the dated they joined in time ago format 
    def joined 
    time_ago_in_words(self.created_at) 
    end 

    # Get the gravatar image url 
    def avatar_url (size=nil) 

    query_string = ''; 

    unless size.nil? 
     query_string = 's=' + size.to_s 
    end 

    "http://www.gravatar.com/avatar/" + Digest::MD5.hexdigest(self.email.strip.downcase) + "?#{query_string}" 
    end 
end 

jedoch umgesetzt, wenn ich diesen Code ausführen, user.avatar_url , und wenn ich user.joined manuell eintippe, funktioniert es gut, aber die dynamische Spalte (ich nehme an, es verhält sich wie Benutzer [: verbunden]) gibt eine leere Zeichenfolge zurück. Ich bin mir sicher, dass ich hier etwas Dummes mache, aber ich weiß nicht, wie man berechnete/formatierte Modellwerte dynamisch erhält.

Aus Gründen der Vollständigkeit, dies ist mein Aufruf an den Teil

<%= render :partial => 'users/showcase', :locals => { :id => 'newest_users', :title => 'Newest Users', :users => @newest_users, :additional_columns => [:affiliation,:joined]} %> 

ich jede Richtung zu schätzen wissen würde, wie diese App meiner ersten Schienen ist, und ich bin nicht wirklich sicher, welche Art von Fragen, die ich soll fragen.

Danke!

Antwort

0

so stieß ich auf eine Lösung, aber ich habe keine Ahnung, ob das

<% users.each do |user| %> 
    <tr> 
     <td><img src="<%= user.avatar_url(32) %>" /></td> 
     <td><%= user.username%></td> 
     <% additional_columns.each do |column| %> 
      <td><%= user.send(column)%></td> 
     <% end %> 
    </tr> 
<% end %> 
eine gute Umsetzung ist
Verwandte Themen