2016-04-12 4 views
0

Ich habe ein Winkelmodul, wo ich ein paar Strings gesetzt. Ich möchte auch ein Array von Strings in der Vorlage festlegen.Rails Template Set-Wert zu Array von Strings

application.html.erb

<script type="text/javascript"> 
    angular.module('userFromServer', []) 
     .service('currentUser', function() { 
     <% if logged_in %> 
      this.name = '<%= @User.name %>'; 
      this.friends = '<%= @User.profile.friends_by_uuid %>'; 
     <% end %> 
     }) 
    </script> 

Controller

def friends_by_uuid 
    self.friends.map{|x| "puser_#{x.uuid}"} # also tried adding .to_json 
    end 

jedoch die Ausgabe einige entkommen Probleme zu haben scheint.

"[&quot;puser_589b07ee-b8f1-4214-941d-0ce0b7a6703b&quot;, &quot;puser_ec7d2918-d514-4c42-91fc-641ed2958fcd&quot;]" 

var desired_output = "["puser_589b07ee-b8f1-4214-941d-0ce0b7a6703b", "puser_ec7d2918-d514-4c42-91fc-641ed2958fcd"] 

Wie kann ich ein Array von Strings in einer Rails-Vorlage rendern?

Antwort

0

Sie sollten keine Logiken in Ansichten oder Controller einfügen: Is it bad to have fat views in rails? Fett-Modelle werden erwartet. Die Lösung besteht darin, das Array in Modellen zu zerlegen/Hilfsfunktionen zu verwenden, es dem Controller zuzuführen und schließlich in Ansichten zu verwenden. Da keine Ahnung was genau du willst, das ist das Meiste was ich tun kann.

Zum Beispiel:

# controller 
def index 
    @ids = MyModel.split(params[:ids]) # suppose params[:ids] are the data coming in 
end 

# view 
<% @ids.each do |id| %> 
# ... 
<% end %> 

für Ruby-Strings zu verarbeiten, können viele Beiträge helfen. Zum Beispiel here.