2012-10-22 19 views
44

Próbuję Stylu A szyn łącze za pomocą css za pomocą następującego kodu:Dodaj klasę css do szyn link_to pomocnika

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

Spodziewam się, że spowodowałoby to link, który wygląda tak:

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

Zamiast szyn jest świadczenie to -

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

Czy ktoś miał ten problem/wiem, co robię źle? Wiem, że mogę uniknąć tego problemu, ręcznie tworząc znacznik zakotwiczenia, zamiast używać pomocnika, ale zastanawiałem się, czy istnieje sposób przekazania informacji o klasie css do samego helpera. Używam Rails 3.2.6.

Dzięki!

+0

Co dzieje się z: class => ["btn", "btn-inverse"] lub: class =>% w "btn btn-inverse"? –

+2

Można również użyć 'menu_path' jako drugiego argumentu do' link_to' zamiast określenia kontrolera i akcji. – James

+0

@James - to działa. Dzięki! – Blake

Odpowiedz

86

Masz problem z składnią. Spróbuj to zamiast:

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

Some documentation for you to go further with the link_to Helper

Mówią:

Bądź ostrożny używając starszego styl argumentacji, jaka jest potrzebna dodatkowa dosłowne hash:

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

Pozostawienie wartości mieszania jest nieprawidłowe NK:

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

polecam Ci użyć pomocnika URL wygenerowane po konfiguracji tras. W twoim przypadku:

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

Małe przypomnienie o Pomocników generowane:

# 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, brakowało mi tego hasha. Właśnie tego szukałem, dzięki! – Blake

+0

Tak, wiem - to sprawia, że ​​trzeba poczekać kilka minut, od kiedy zadajesz pytanie. jeszcze dwie minuty! – Blake

2

Spróbuj nową konwencję Argument:

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

mi rozwiązać mój problem przy okazji

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