Подтвердить что ты не робот

Rails 3: отображать ссылку как кнопку?

На некоторых неформатных страницах у меня есть несколько ссылок, которые выглядели бы лучше как кнопка, чем гиперссылка...

Я думал, что button_to вместо link_to будет работать, но buton_to, похоже, всегда рассматривается как сообщение.

Есть ли простой способ просто заменить ссылку (без отправки) кнопкой?

4b9b3361

Ответ 1

Все, что вам нужно сделать, это добавить :method => "get" в конец вашей кнопки_to, чтобы заставить его обрабатываться как ссылка

Кнопка_в пути

Используя users_path

<%= button_to "BUTTON: link version", users_path, :method => "get" %>

Путь CSS

Или вместо того, чтобы вставлять какую-либо форму в ваш html (что и есть на самом деле button_to), вы можете пойти с помощью метода очистки (с точки зрения веб-дизайна) и на самом деле просто создать ссылку таким образом, чтобы она выглядела как кнопка Это имеет несколько преимуществ

Сохраняет формы из вашего HTML, когда они действительно не должны быть там Сохраняет ваш erb чистый и нормальный, без сюрпризов Awesomely flexible, вы можете заставить их выглядеть так, как вы хотите.

Вот отличная статья о том, как это сделать, и вот небольшой фрагмент этого кода, на самом деле просто зависит от игры с border, padding и background image

a.button {
  background: transparent url('bg_button_a.gif') no-repeat scroll top right;
  color: #444;
  display: block;
  float: left;
  font: normal 12px arial, sans-serif;
  height: 24px;
  margin-right: 6px;
  padding-right: 18px; /* sliding doors padding */
  text-decoration: none;
}

Код исходит из ссылки выше. Какой бы метод вы ни выбрали, вы должны работать нормально, наслаждайтесь!

Ответ 2

Я думаю, что все, что вам нужно, это просто взгляд. и если это так, то вы можете просто добавить класс к объекту класса в ссылке

<%= link_to 'Add Class', new_subject_path, class: "btn btn-primary"%>

Ответ 3

Мне недавно приходилось это делать, потому что моя форма действовала по-разному для link_to, чем с button_to, и мне нужна была функциональность, предоставленная ссылкой. Лучшее решение, которое я нашел, не использует CSS вообще, а вместо этого вызывает .html_safe, чтобы избежать html в коде ruby ​​и правильно отобразить ссылку как кнопку. Что вы хотите сделать, так это:

<%= link_to "<button>This is a button</button>".html_safe, some_path, :id => "button_id", :class => "button_class" %>

Ответ 4

Если все, что вы хотите сделать, это сделать ссылку похожим на кнопку.

Изменение link_to до button_to - это все, что мне нужно.