如何使用两个条件操作制作 Haml 表单
How to make a Haml form with two conditional actions
提交此表单时将在控制器上调用 put
操作:
.panel-body{style: 'background:#0E0D0D;'}
=form_for @payment, method: :put, html: {id: 'edit_bank_detail'} do |f| .row.text_white
.form-group.col-lg-12
=f.label :paypal_email_address
=f.email_field 'user_paypal_email',class: 'form-control'
.row.text-center
.form-group.col-lg-12
=f.submit 'Submit', class: 'btn btn-primary text_black',data: { disable_with: "Please wait..." }
我需要它根据条件调用 put
或 create
操作:
if @payments.new_record?
# create action
else
# put action
您甚至不需要首先指定 HTTP 方法。 form_for
及其继任者 form_with
足够聪明,可以通过在您作为第一个参数。
= form_for @payment, html: {id: 'edit_bank_detail'} do |f|
给定常规路由,如果记录已保存,这会将表单指向 POST /payments
或 PATCH /payments/:id
。 Rails 已使用 PATCH 而不是 PUT 进行更新 since 2012 但 resources
和 resource
仍会生成额外的 PUT
路由以实现向后兼容性。
我试过类似的方法,它有效。
=f.submit 'Submit', action_name: @return.new_record? ? 'create' : 'update'
谢谢@Sebastian Palma采纳了您的建议。
提交此表单时将在控制器上调用 put
操作:
.panel-body{style: 'background:#0E0D0D;'}
=form_for @payment, method: :put, html: {id: 'edit_bank_detail'} do |f| .row.text_white
.form-group.col-lg-12
=f.label :paypal_email_address
=f.email_field 'user_paypal_email',class: 'form-control'
.row.text-center
.form-group.col-lg-12
=f.submit 'Submit', class: 'btn btn-primary text_black',data: { disable_with: "Please wait..." }
我需要它根据条件调用 put
或 create
操作:
if @payments.new_record?
# create action
else
# put action
您甚至不需要首先指定 HTTP 方法。 form_for
及其继任者 form_with
足够聪明,可以通过在您作为第一个参数。
= form_for @payment, html: {id: 'edit_bank_detail'} do |f|
给定常规路由,如果记录已保存,这会将表单指向 POST /payments
或 PATCH /payments/:id
。 Rails 已使用 PATCH 而不是 PUT 进行更新 since 2012 但 resources
和 resource
仍会生成额外的 PUT
路由以实现向后兼容性。
我试过类似的方法,它有效。
=f.submit 'Submit', action_name: @return.new_record? ? 'create' : 'update'
谢谢@Sebastian Palma采纳了您的建议。