2012-04-08 8 views
0

Ich habe den folgenden Tag TeilText einfügen zu link_to in Rails

%span.tag-label 
    = link_to "#{tag}" , :controller => "searches", :action => "search_tags", :search_type => search_type, 
    :tag_type => tag_type, :tag =>"#{tag}" 

und ich Pass-Tags auf die teilweise als Sammlung:

= render "shared/tag_item", :collection => @listing.keyword_list, :as => :tag, 
:search_type => "Listing", :tag_type => nil 

Aus irgendeinem Grunde habe ich diesen Fehler:

wrong number of arguments (0 for 1) 

in meinem Teil.

Wenn ich einfach nur Text auf link_to "text" und: tag =>"text" setzen, dann funktioniert es. Warum funktioniert mein eingebetteter Text in "#{tag}" in diesem Fall nicht?

Vielen Dank. aktualisieren anzeigen Fehler Trace: `endered Listings/show.html.haml innerhalb Layouts/Anwendung (148.4ms) 500 Internal Server Error in 232ms

ActionView::Template::Error (wrong number of arguments (0 for 1)): 
    1: %span.tag-label 
    2: = link_to "#{tag.to_s}" , :controller => "searches", :action => "search_tags", :search_type => search_type, 
    3: :tag_type => tag_type, :tag =>"#{tag.to_s}" 
    <a href="txmt://open?url=file:///Users/app/views/shared/_tag_item.html.haml&amp;line=2&amp;column=1">app/views/shared/_tag_item.html.haml 
+0

Zeigen Sie die Fehlerkurve an, wo der Fehler auftritt. – Zabba

+0

Stellen Sie sicher, dass 'link_to" # {tag} ",' ist eigentlich 'link_to" # {tag} ",' –

+0

Wenn Sie nur 'url_for (: controller => "sucht",: action => "search_tags", ausgeben: search_type => search_type, : tag_type => tag_type,: tag => "# {tag}" '' anstelle von 'link_to..' wird diese Ausgabe wie erwartet ausgegeben? –

Antwort

1

Wenn Sie lokale Variablen an Ihre Partiellen übergeben, müssen Sie die render Methode den Schlüssel :locals übergeben.

render "shared/tag_item", :collection => @listing.keyword_list, :as => :tag, :locals => { :search_type => "Listing", :tag_type => nil } 

Obwohl ich zugeben muß, ich erwartet hätte dies einer Nameerror und kein Argument zu geben. Gibt es irgendwo in Ihrem Code eine search_type oder tag_type Methode?

0

Nicht sicher abgeschlossen, wenn das Ihr Problem beheben, aber Sie müssen Ihre tag Variable nicht interpolieren. Sie können einfach link_to tag und :tag => tag schreiben.

+1

Danke Grandan, aber es hat nicht funktioniert. – AdamNYC