2012-06-05 2 views
2

настоящее время я использую link_to:содержание HTML для button_to

<%= link_to edit_webcast_path(@webcast), :class => 'btn' do %> 
    <i class="icon-pencil"></i> Edit Webcast 
<% end %> 

Но я хочу сделать то же самое с button_to, однако button_to должен иметь первый аргумент метка передается к нему или он будет использовать путь в качестве этикетки ,

<%= button_to edit_webcast_path(@webcast), :class => 'btn' do %> 
    <i class="icon-pencil"></i> Edit Webcast 
<% end %> 

... приводит к кнопке с меткой, которая является разрешенным edit_webcast_path (@webcast) путем. По сути дела, кажется, не имеет никакого эффекта.

Я попытался прохождение HTML непосредственно в качестве первого аргумента:

<%= button_to "<i class=\"icon-white icon-minus-sign \"></i> Edit Webcast".html_safe, webcast_path(@webcast), :class => 'btn'%> 

Но это приводит к кнопке с меткой отображается частью HTML строки я прохожу в Глядя на сгенерированной Html я могу видеть, что. содержимое этого первого аргумента помещается в атрибут значения ввода, а не внутри самого входа.

Как я могу заставить это работать?

ответ

2

Rails button_to создает форму с html <input type="submit"> элемент, а не <button> один. Вы можете попробовать заменить его или написать свой собственный помощник для создания <button>, возьмите look at this example

+0

Спасибо за ссылку. Я должен по-прежнему иметь возможность размещать тег внутри элемента ввода, но не должен ли я? – Undistraction

+0

Вы не можете разместить html-теги внутри кнопки отправки, но можете сделать это с помощью '

+0

ОК. Спасибо, что поняли это. – Undistraction

0

В Rails, button_to попытается сделать запись или положить, так что это не на самом деле кнопка «обычный», вы можете стилизовать ваша ссылка, чтобы посмотреть и действовать как кнопка

-4

Вы делаете это неправильно. Вы пытаетесь добавить ненужный элемент html для управления тем, что является заданием CSS.

Вместо просто создать класс или идентификатор для кнопки и добавить в CSS:

.btn { padding-left:30px; background: url(pencil.png) no-repeat; }