如何在HAML中创建按钮链接到路径?

时间:2016-02-03 19:32:48

标签: ruby-on-rails ruby haml

我最初只有一个按钮,当点击时会将用户引导到不同的路径。这是代码:

  .bar
    %h1.pull-left= t('payer_contracts.payer_contracts')
    = button_to t('payer_contracts.new_payer_contract'), new_payer_contract_path, {:class => 'btn pull-right', :method => 'get'}

现在,我有一个按钮下拉按钮。我如何添加第一个按钮“添加全局付款人合同”的路径,然后选择另一个路径到按钮下拉选项“添加BPCI付款人合同”?

  .bar
    .btn-group.dropdown-end
      %button.btn{:type => "button"} Add Global Payer Contract
      %button.btn.icon-decrement{"aria-expanded" => "false", "aria-haspopup" => "true", "data-toggle" => "dropdown", :type => "button"}
      %ul{"aria-hidden" => "true", :role => "menu"}
        %li
          %a{:href => "#"} Add BPCI Payer Contract

我想将“添加全球付款人合同”路径添加到new_payer_contract_path 并将BPCI付款人合同添加到add_new_bpci_path

1 个答案:

答案 0 :(得分:2)

您将使用link_to

button_to尽管这个名字并不意味着你想要一个看起来像按钮的链接时应该使用它。 button_to创建了一个离散形式,这使得它非常适合执行POST,DELETE或PATCH操作的按钮,因为它甚至可以在没有javascript tomfoolery的情况下实现。

button_to "Delete", thing_path(@thing), method: :delete

但是当你只想要一个新的,索引或节目动作的链接时,它完全矫枉过正。如果您在任何地方使用button_to,您将收到一份非常繁重且令人费解的文档(想想.Net WebForms)。

  .bar
    .btn-group.dropdown-end
      %button.btn{:type => "button"} Add Global Payer Contract
      %button.btn.icon-decrement{"aria-expanded" => "false", "aria-haspopup" => "true", "data-toggle" => "dropdown", :type => "button"}
      %ul{"aria-hidden" => "true", :role => "menu"}
        %li
          = link_to "Add BPCI Payer Contract", new_payer_contract_path