Ruby on Rails - link_to button/css
Хорошо, поэтому я учу себя RoR при разработке простого api и веб-интерфейса. Я слежу за несколькими руководствами и тестирую различные результаты. Я издевался над некоторыми HTML-шаблонами, и я нахожусь в процессе, когда я начинаю разбивать их на представления.
В моем HTML у меня есть следующий код, который является кнопкой с стилем CSS:
<input type="submit" name="" value="Add" id="open-contacts-dialog-btn" class="inbox-sf-add-btn tip" title="Open an dialog to add a new contact"/>
Это моя кнопка в моей панели, которую я хотел бы связать с /книгой/новым/, я знаю, что мне нужно link_to, но что бы мой окончательный код? Код, который я пробовал, выглядит следующим образом
<%= link_to "Add", new_admin_course_path, :id=>"open-contacts-dialog-btn", :class=>"inbox-sf-add-btn tip" %>
Но он не добавляет мой стиль CSS, он просто генерирует текст "Добавить". Любая помощь будет полезна. Благодаря
Ответы
Ответ 1
link_to
генерирует тег <a>
, который не является input type="submit"
. То, что вы должны использовать, должно быть button_to
, которое генерирует форму с кнопкой input type="submit"
для ссылки:
<%= button_to "Add", new_admin_course_path, :id => "open-contacts-dialog-btn",
:class => "inbox-sf-add-btn tip", :method => :get %>
Обратите внимание на :method => :get
. Без него button_to
будет генерировать форму с методом, установленным для публикации.
Ответ 2
Мне недавно приходилось это делать, потому что моя форма действовала по-разному для link_to, чем с button_to, и мне нужна была функциональность, предоставленная ссылкой. Лучшее решение, которое я нашел, не использует CSS вообще, а вместо этого вызывает .html_safe, чтобы избежать html в коде ruby и правильно отобразить ссылку как кнопку. Что вы хотите сделать, так это:
<%= link_to "<button>Add</button>".html_safe, new_admin_course_path, :id=>"open-contacts-dialog-btn", :class=>"inbox-sf-add-btn tip" %>
Ответ 3
Но это не добавление моего стиля CSS.
Что вы имеете в виду? Элемент link (a
) с классами inbox-sf-add-btn
и tip
генерируется, правильно? Итак, в чем проблема?
Если вам нужна строгая кнопка (input
вместо a
), вы можете указать /book/new
(или <%= new_admin_course_path %>
) в атрибуте action
вашей html-формы (form
).