根据视图中传递的参数重定向路径
Re-directing path based on params passed in views
我的 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
使用 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"
我的 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
使用 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"