J'essaye de styler un lien Rails en utilisant css en utilisant le code suivant:
<%= link_to "Learn More", :controller => "menus", :action => "index", :class => "btn btn-inverse" %>
Je m'attendrais à ce que cela crée un lien qui ressemble à ceci:
<a href="menus/" class="btn btn-inverse">Learn More</a>
Au lieu de cela, Rails rend ceci -
<a href="/menus?class=btn+btn-inverse">Learn More</a>
Quelqu'un d'autre a-t-il eu ce problème/sait ce que je fais mal? Je sais que je peux éviter ce problème en créant manuellement la balise d'ancrage plutôt qu'en utilisant helper, mais je me demandais s'il existait un moyen de transmettre les informations de classe css à l'aide elle-même. J'utilise Rails 3.2.6.
Merci!
Vous avez un problème de syntaxe. Essayez ceci à la place:
<%= link_to "Learn More", {controller: "menus", action: "index"}, class: "btn btn-inverse" %>
Une documentation pour vous permettre d'aller plus loin avec le link_to Helper
Ils disent:
Soyez prudent lorsque vous utilisez le style d'argument plus ancien, car un hachage littéral supplémentaire est nécessaire:
link_to "Articles", { :controller => "articles" }, :id => "news", :class => "article" # => <a href="/articles" class="article" id="news">Articles</a>
Laisser le hachage donne le mauvais lien:
link_to "WRONG!", :controller => "articles", :id => "news", :class => "article" # => <a href="/articles/index/news?class=article">WRONG!</a>
Je vous recommande d'utiliser l'URL helper généré après la configuration de vos routes. Dans ton cas:
link_to "Learn More", menus_path, :class => "btn btn-inverse"
Un petit rappel sur les Helpers générés:
# 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
Essayez une nouvelle convention d'argumentation:
<%= link_to 'Learn More', 'menus#index', class: 'btn btn-inverse' %>
J'ai résolu mon problème en passant
<%= link_to image_tag("imageexamplo.png", class: 'class or id examplo css'),{controller: "user" , action: "index"}%>
Voici comment je l'ai résolu en utilisant un autre moteur de vue,HAMLjuste au cas où un autre développeur aurait ce besoin
%i= link_to "Add New Blog Post", user_post_edit_new_url(current_user), :class => "fa fa-plus-circle"