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

时间:2010-11-21 09:23:14

标签: ruby-on-rails css ruby-on-rails-3 view

我有一个block -iterator来显示用户以及每次迭代要在同一行显示的相关操作?
您可以这样形象化: -

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'来实现它 如果我使用'link_to'而不是'button_to',我可以实现我的想法,但无法用button_to来实现。为什么link_to和button_to之间存在差异。
我想仅将“优惠出价”显示为按钮 现在,如何使button_to buttin出现在与'email'相同的行上。

如果问题描述不明确,请告诉我。 提前谢谢。

3 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:3)

这与rails无关,而是与Web浏览器的呈现形式有关。

button_to只是创建具有不可见字段的表单的便捷方式。如果您希望表单与电子邮件地址位于同一行,则需要将其放入容器中,通常是div,将div设置为向左浮动并溢出隐藏。

答案 2 :(得分:0)

button_to呈现为表单标记,因此我只是更改了CSS以确保表单标记不会创建新行。

但要仅将其应用于特定的表单标记,请添加form_class: "myButton",请参阅下文。

在你的something.html.erb

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

将其放入application.css

myButton {
    display: inline;
}