2016-02-04 118 views
3

我在index.html.haml以下两个按钮:重新定向路径

= button_to t('payer_contracts.new_global_payer_contract'), new_payer_contract_path, {:class => 'btn pull-left', :method => 'get'} 
= link_to t('payer_contracts.new_bpci_payer_contract'), new_payer_contract_path 

正如你可以看到他们俩去new_payer_contract_path。我怎样才能做到这一点,如果第一个按钮被点击,我可以发送一个参数,如new_payer_contract_path(new_global_payer_contract)

问题是:在我的new.html.haml中,它们都呈现'global_form'。我想第一个按钮来呈现global_form和第二个按钮,使“bpci_form

这里是new.html.haml:

- content_for(:title, t('payer_contracts.page_titles.new')) 

- content_for :article do 
    .common-main-container 
    %h1= t('payer_contracts.new_payer_contract') 
    = render 'global_form' 

在我payer_contracts_controller我有这个至今:

def new 

    @payer_contract = PayerContract.new(
     id: '', 
     contract_name: '', 
     contract_type: { 
      id: '', 
      code_key: '', 
      display: '', 
      code_group: '' 
    }, 
     amount: '', 
     stoploss_amount: '', 
     stoploss_reimbursement_percentage: '', 
     begin_date: '', 
     end_date: '', 
     timely_filing_days: '', 
     payer: '' 
    ) 
end 

回答

1

随着button_to,你可以传递一个params哈希:

<%= button_to t('payer_contracts.new_global_payer_contract'), new_payer_contract_path, class: 'btn pull-left', method: :get, params: { x: "y" } %> 

这会在button_to创建的表单内创建一个hidden_field,从而允许您将params[:x]传递给您的下一个操作。


更新

根据你的意见,你要在你的控制器的params[:x]变量。

你只需要在你的ActiveRecord查询呼叫使用:

#view 
-if params["x"] == "y" 
    = render "global_form" 
-else 
    = render "bpci_form" 
+0

我添加了按钮,现在我想修改我的意见,使****: - 如果new_payer_contract_path(PARAMS [” y']) =渲染'global_form' -else =渲染'bpci_form'****但这仍然不起作用。有任何想法吗? – Mdjon26

+0

当您点击按钮时,您可以发布控制台日志吗?知道正在发送哪些参数是最重要的东西 –

+0

看起来像是在说:参数:{“x”=>“y”} – Mdjon26