Rails: Как сделать так, чтобы кнопка "button_to" появлялась на одной строке (без новой строки)? - PullRequest
6 голосов
/ 21 ноября 2010

У меня есть блок-итератор для отображения пользователя и связанное с ним действие, которое будет отображаться в одной и той же строке для каждой итерации?
Вы можете визуализировать это так:используйте метод button_to, кнопка отображается на новой строке.который я не хочу. вот мой фрагмент кода: -

<% @post.bids.each do |bid| %>
<p>
<%= bid.user.email %>   
<%= button_to "Offer Bid", offer_bid_post_bid_path(@post, bid), :action => "offer_bid">
</p>
<% end %>  

Но с помощью приведенного выше кода 'email' и 'bid offer' появляются в двух строках, но я хочу отображать их в виде парс каждой парой, появляющейся на одной строке.

Я могу добиться этого, используя 'link_to'.
Если я использую 'link_to' вместо 'button_to', я могу реализовать свою идею, но не могу сделать это с помощью button_to.Почему эта разница между link_to и button_to.
Я хочу отображать «предложение цены» только в виде кнопки.
Теперь, как сделать так, чтобы button_to buttin отображался в той же строке, что и «email».

Пожалуйста, дайте мне знать, если описание вопроса не понятно.Заранее спасибо.

Ответы [ 3 ]

9 голосов
/ 21 ноября 2010

Button_to генерирует форму и элемент div вокруг кнопки.Таким образом, если вы не ограничите ширину контейнера перед кнопкой, это займет 100% ширины при нажатии кнопки вниз.

<% @post.bids.each do |bid| %>
  <p>
    <div style="float: left; width: auto;"><%= bid.user.email %></div>   
    <%= button_to "Offer Bid", offer_bid_post_bid_path(@post, bid), :action => "offer_bid" %>
  </p>
<% end %>
3 голосов
/ 21 ноября 2010

Это связано не с рельсами, а с тем, как формируется рендер в веб-браузере.

button_to - это просто удобный способ создания формы с невидимым полем.Если вы хотите, чтобы форма находилась в той же строке, что и адрес электронной почты, вам нужно поместить ее в контейнер, чаще всего это div, установить для div значение с плавающей точкой влево и с переполнением.

0 голосов
/ 03 марта 2018

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

Но чтобы применить его только к определенному тегу формы, добавьте form_class: "myButton", см. Ниже.

В вашем нечто. Html.erb

<%= button_to "Offer Bid", offer_bid_post_bid_path(@post, bid), :action => "offer_bid", form_tag: "myButton>

Поместите это в ваш application.css

myButton {
    display: inline;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...