我有一个块迭代器来显示一个用户和一个相关的动作,每次迭代都显示在同一行上。
你可以这样想象:
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_to
和button_to
的区别是什么?
我想显示“出价出价”作为一个按钮只。
如何使button_to按钮与“email”出现在同一行?
如果问题的描述不清楚,请告诉我。先谢了。
3条答案
按热度按时间koaltpgm1#
button_to生成一个表单和一个围绕按钮的div。所以,如果你不限制按钮前面的容器的宽度,它将占用按钮宽度的100%。
idfiyjo82#
button_to
呈现为一个表单标记,所以我只是修改了CSS,以确保表单标记不会创建一个新行。但要将其仅应用于特定的表单标记,则给予add
form_class: "myButton"
,见下文。在你的something.html.erb中
把这个放进你的
application.css
里ao218c7q3#
这与rails无关,而是web浏览器如何呈现表单。
button_to只是一种创建带有不可见字段的表单的方便方法。如果你想让表单和电子邮件地址在同一行,你需要把它放在一个容器中,通常是一个div,把div设置为float left和overflow hidden。