Параметры link_to

Итак, я пытаюсь сделать это ссылкой link_to:

<a class="dropdown-toggle" data-toggle="dropdown" href="#">Sign-In <b class="caret"></b></a>

У меня это до сих пор, но не могу понять, как обращаться с <b class="caret"></b>. Я попытался выполнить блок do в конце link_to, но получил ошибку.

<%= link_to "Sign-In", new_user_session_path, :class => "dropdown-toggle", :data => {:toggle=>"dropdown"} %>

Я только начал изучать Rails и искал (включая чтение документов RoR API), но не получил ничего, чтобы работать. Спасибо за помощь!

Ответы

Ответ 1

link_to, который вы предоставили, хорошо с точки зрения контекста.

Позвольте мне рассказать вам, что это такое:

Это ссылка, которую вы упомянули:

<%= link_to "Sign-In", new_user_session_path, :class => "dropdown-toggle", :data => {:toggle=>"dropdown"} %>

Это соответствующая html-ссылка, образованная вышеуказанным link_to:

<a href="users/sessions/new" class="dropdown-toggle" data-toggle="dropdown">Sign-In</a>

Теперь рассмотрим эту ссылку:

<%= link_to(raw("Sign-In" +("<b class= 'caret'></b>")), new_user_session_path, :class => "dropdown-toggle", :data => {:toggle=>"dropdown"}) %>

Вышеуказанная ссылка предоставит вам следующую ссылку html:

<a class="dropdown-toggle" data-toggle="dropdown" href="users/sessions/new">Sign-In<b class= 'caret'></b></a>

Теперь вы почти близки к вашему результату. Единственное, что есть href.

Ok, немного измените приведенный выше link_to только с изменением href path как -

<%= link_to(raw("Sign-In" +("<b class= 'caret'></b>")), "#", :class => "dropdown-toggle", :data => {:toggle=>"dropdown"}) %>

Сгенерированная ссылка теперь эквивалентна тому, что вы хотели:

<a href="#" class="dropdown-toggle" data-toggle="dropdown">Sign-In<b class= 'caret'></b></a>

Ответ 2

Если вы предоставляете блок, вы опускаете первый аргумент (обычно содержимое тега a), и он будет заменен тем, что дает блок.

<%= link_to new_user_session_path, :class => "dropdown-toggle", :data => {:toggle=>"dropdown"} do %>
  Sign-In <b class="caret"></b>
<% end %>

Ответ 3

поместите ссылку в контейнер, это может быть div и поместите class= "dropdown".

 <div class="dropdown">
    <%= link_to image_tag('icons/lock_icon.png') + " Log In" +('<b class="caret"></b>').html_safe , '#', { :class => 'dropdown-toggle', 'data-toggle' =>  'dropdown' } %>
 </div>

Ответ 4

Он должен быть атрибутом данных в link_to link_to remove_user_path(recipient_id: recipient.id) , method: :delete, data: {confirm: 'Are you sure you want to delete?'}