代码之家  ›  专栏  ›  技术社区  ›  Hemanth

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

  •  6
  • Hemanth  · 技术社区  · 15 年前

    我有一个块迭代器来显示一个用户和一个相关的动作,每次迭代都显示在同一行上?
    你可以这样想象:-

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

    但是如果我用一个button_方法,这个按钮就会显示在换行符上。我不想要。这是我的代码片段:-

    <% @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”出现在两行中,但是我想将它们显示为一对,每对都出现在一行中。

    我可以用“链接”来实现它。
    如果我使用“链接到”而不是“按钮到”,我就可以实现我的想法,但不能用按钮到。为什么链接到和按钮到之间有区别。
    我只想把出价显示为一个按钮。
    现在,如何使要插入的按钮与“电子邮件”显示在同一行。

    如果问题的描述不清楚,请告诉我。 提前谢谢。

    3 回复  |  直到 15 年前
        1
  •  9
  •   Kalyan Maddu    15 年前

    用于生成窗体和按钮周围的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 %>
    
        2
  •  3
  •   mark    15 年前

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

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

        3
  •  1
  •   Mark    8 年前

    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;
    }