ruby-on-rails Rails:如何使“button_to”按钮出现在同一行上(没有换行符)?

s71maibg  于 2023-10-21  发布在  Ruby
关注(0)|答案(3)|浏览(155)

我有一个块迭代器来显示一个用户和一个相关的动作,每次迭代都显示在同一行上。
你可以这样想象:

user1  update_attribute_button
user2  update_attribute_button.
...
and so on.

如果我使用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”和“offer bid”出现在两个单独的行上,但是我想在同一行上显示它们。
如果我使用link_to而不是button_to,我可以实现我的想法,但不能用button_to来实现。link_tobutton_to的区别是什么?
我想显示“出价出价”作为一个按钮只。
如何使button_to按钮与“email”出现在同一行?
如果问题的描述不清楚,请告诉我。先谢了。

koaltpgm

koaltpgm1#

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 %>
idfiyjo8

idfiyjo82#

button_to呈现为一个表单标记,所以我只是修改了CSS,以确保表单标记不会创建一个新行。
但要将其仅应用于特定的表单标记,则给予add form_class: "myButton",见下文。
在你的something.html.erb中

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

把这个放进你的application.css

myButton {
    display: inline;
}
ao218c7q

ao218c7q3#

这与rails无关,而是web浏览器如何呈现表单。
button_to只是一种创建带有不可见字段的表单的方便方法。如果你想让表单和电子邮件地址在同一行,你需要把它放在一个容器中,通常是一个div,把div设置为float left和overflow hidden。

相关问题