我有一个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'相同的行上。
如果问题描述不明确,请告诉我。 提前谢谢。
答案 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;
}