2010-11-21 18 views
5

我有一个block -iterator来显示一个用户和一个相关的动作,以便每次迭代显示在同一行上?
你可以想像这样的: -Rails:如何让“button_to”按钮出现在同一行(不带换行符)?

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

但是,如果我用一个button_to方法按钮越做越换行显示。我不want.heres我的代码片段: -

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

但与上面的代码的“电子邮件”和“要约出价”是出现在两行,但我想将其显示为对,每一对出现在一行上。

我可以使用'link_to'来实现它。
如果我使用'link_to'而不是'button_to',我可以实现我的想法,但不能用button_to来完成。为什么link_to和button_to之间的区别?
我想仅显示'offer bid'作为按钮。
现在,如何使button_to buttin与'email'出现在同一行上。

如果问题的描述不清楚,请让我知道。 在此先感谢。

回答

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

这也为我工作将这个。谢谢!! – 2012-06-11 17:30:09

3

这不是用rails做的,而是web浏览器的渲染形式。

button_to只是一种创建带有不可见字段的窗体的便捷方式。如果你想把表单放在同一行作为电子邮件地址,你需要把它放到一个容器中,通常是一个div,将div设置为向左浮动并溢出隐藏。

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; 
} 
相关问题