我的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
答案 0 :(得分: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" } %>
这会在hidden_field
创建的表单中创建button_to
,允许您将params[:x]
传递给下一个操作。
<强>更新强>
根据您的评论,您在控制器中获得了params[:x]
变量。
您只需在ActiveRecord
查询电话中使用此功能:
#view
-if params["x"] == "y"
= render "global_form"
-else
= render "bpci_form"