2010-11-21 17 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; 
} 
相關問題