如何通过两个条件动作构成Haml形式

问题描述 投票:0回答:1

提交后,此表单将在控制器上调用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..." }

我需要根据条件来调用putcreate操作:

if @payments.new_record? 
  # create action
else
  # put action   
html ruby-on-rails haml
1个回答
0
投票

您甚至不需要首先指定HTTP方法。 form_for及其后继form_with足够聪明,可以通过在您作为第一个参数传递的#persisted?模型实例上调用@payment来找出action属性和方法的路径。

= form_for @payment, html: {id: 'edit_bank_detail'} do |f|

考虑到常规路由,如果记录已保留,它将把表格指向POST /paymentsPATCH /payments/:id。 Rails使用PATCH而不是PUT进行更新since 2012,但是resourcesresource仍会生成其他PUT路由以实现向后兼容性。

© www.soinside.com 2019 - 2024. All rights reserved.