2010-12-09 4 views
1

ich eine Aktion in der Steuerung haben:Wie die Hash-Werte in den Ansichten in Schienen abzurufen

def user_detail 
    @user_detail = UserDetail.find_by_id(11) 
end 

Und in der Ansicht:

<%= @user_detail -%> // displays me like # 

Ich versuche, den Inhalt abzurufen @ user_detail: Tatsächlich enthält der Hash {:empid=>"11111", :prjtname=>"aaaaa", :prjtrole=>"Developer"}

Wie zeige ich die Empid- und andere Werte des Benutzerdetails an?

Antwort

7

Da ich weiß, was in Frage stellen Sie zuvor gefragt, ich denke, das ist die Syntax, die Sie tatsächlich verwenden möchten:

<%= @user_detail.additional_info[:empid] %> 

Es sei denn natürlich Sie den Namen des Hash umbenannt :)

Ein anderer Ansatz wenn Sie alle Inhalte aus dem Hash wollen, aber die Schlüssel aus jedem Datensatz ändert, könnten Sie eine Schleife durch sie wie folgt aus:

<% @user_detail.additional_info.each_pair do |key, value| %> 
    <p>Key: <%= key %> Value: <%= value %></p> 
<% end %> 
2

einfache Debug-Ausgabe wie das Beispiel Um Sie auf dem Laufenden, das damit umgehen:

<%= @user_detail.inspect %> 
+0

@Dogweather - die über eine gibt mir das Ergebnis als – useranon

+0

# „11111 ",: prjtname =>" AAAA ",: prjtrole =>" Entwickler "}, reporting_to: 1>. – useranon

+0

@Dogweather - wie die einzelnen Werte wie die empid allein bekommen ?? – useranon

2

diese Antwort versuchen <%= @user_detail.emplid %> <%= @user_detail.prjtname %> <%= @user_detail.prjtr %>

+0

ActionView :: TemplateError (undefinierte Methode 'empid 'für # ) online. ist der Fehler, den ich erhalte, als ich <% = @ user_detail.emplid%> – useranon

+0

@aruna probiere <% = @ user_detail.id%> – akshay1188

+0

<% = @ user_detail.id%> gibt die ID der Zeile. Aber ich versuche, die Werte des Hashes zu finden, dessen Schlüssel empid sind, prjtname .. <% = @ user_detail.empid%> löst den Fehler aus. – useranon

1

Mehr von einer Extraktion von @ dln

versuchen

mit
<%= @user_detail[:emplid] %> 
<%= @user_detail[:prjtname] %> 
<%= @user_detail[:prjtr] %> 

Hoffe das löst Ihr Problem

+0

+1 Für die erste Antwort mit korrekter Hash-Syntax :) – DanneManne

Verwandte Themen