2016-02-04 186 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