2012-10-22 8 views
44

Ich versuche, eine Schiene stylen CSS Link mithilfe des folgenden Code verwenden:In CSS-Klasse link_to Helfer zu den Schienen

<%= link_to "Learn More", :controller => "menus", :action => "index", :class => "btn btn-inverse" %> 

Ich würde erwarten, dass dies einen Link erstellen würde, die wie folgt aussieht:

<a href="menus/" class="btn btn-inverse">Learn More</a> 

Stattdessen wird Rendering Schienen dies -

<a href="/menus?class=btn+btn-inverse">Learn More</a> 

hat jemand dieses Problem gehabt/weiß, was mache ich falsch? Ich weiß, dass ich dieses Problem vermeiden kann, indem ich das Anchor-Tag manuell erstelle, anstatt helper zu verwenden, aber ich habe mich gefragt, ob es eine Möglichkeit gibt, die CSS-Klasseninformationen an den Helfer selbst zu übergeben. Ich benutze Rails 3.2.6.

Danke!

+0

Was passiert mit: class => ["btn", "btn-inverse"] oder: class =>% w "btn btn-inverse"? –

+2

Sie können auch 'menus_path' als zweites Argument für' link_to' verwenden, anstatt den Controller und die Aktion anzugeben. – James

+0

@James - das funktioniert. Vielen Dank! – Blake

Antwort

86

Sie haben ein Syntaxproblem. Versuchen Sie stattdessen:

<%= link_to "Learn More", {controller: "menus", action: "index"}, class: "btn btn-inverse" %> 

Some documentation for you to go further with the link_to Helper

Sie sagen:

Seien Sie vorsichtig, wenn die ältere Argument Stil, als eine zusätzliche wörtliche Hash benötigt wird:

link_to "Articles", { :controller => "articles" }, :id => "news", :class => "article" 
# => <a href="/articles" class="article" id="news">Articles</a> 

Wenn der Hash-Wert deaktiviert ist, wird der falsche Wert zurückgegeben nk:

link_to "WRONG!", :controller => "articles", :id => "news", :class => "article" 
# => <a href="/articles/index/news?class=article">WRONG!</a> 

empfehle ich Ihnen zu die Helfer URL nach Ihrer Routen Konfiguration erzeugt. In Ihrem Fall:

link_to "Learn More", menus_path, :class => "btn btn-inverse" 

Eine kleine Erinnerung an den Helfer generiert:

# routes.rb 
resources :users 

# any view/controller 
users_path #=> /users 
edit_user_path(user) #=> /users/:id/edit 
user_path(user) #=> /users/:id (show action) 
new_user_path(user) #=> /users/new 
+1

Ah, ich vermisste diesen Hash. Genau das habe ich gesucht, danke! – Blake

+0

Ja, ich weiß - es lässt dich ein paar Minuten warten, bis du die Frage stellst. noch zwei Minuten! – Blake

2

neues Argument Konvention Versuchen:

<%= link_to 'Learn More', 'menus#index', class: 'btn btn-inverse' %> 
0

ich mein Problem durch die Art und Weise

gelöst
<%= link_to image_tag("imageexamplo.png", class: 'class or id examplo css'),{controller: "user" , action: "index"}%>