2016-03-17 3 views
0

У меня есть следующие настройки формы:рельсов 4 простая форма include_blank еще посылает пустые атрибуты

= simple_form_for(@job, url: job_payment_path, html: { id: 'payment-processor-form' }) do |j| 
    div[class='row'] 
    div[class='col-md-12'] 
     div[class='panel panel-default'] 
     div[class='panel-heading'] 
      h3[class='panel-title'] 
      |Total Cost 
     div[class='panel-body'] 
      h2[class='job-cost' data-initial = "#{job_base_price}"] 
      = number_to_currency(job_base_price) 
     div[class='panel-heading'] 
      h3[class='panel-title'] 
      |Have a coupon? 
     div[class='panel-body'] 
      div[class='row-inline'] 
      div[class='row-block row-block-one'] 
       = j.simple_fields_for :coupon_attributes, @job.coupon do |c| 
       = c.input_field :code, maxlength: 50, id: 'coupon-code', class: 'form-control', data: { 'initial' => 0 }, include_blank: false 
      div[class='row-block'] 
       button[type='button' class='btn btn-primary' id='coupon-verify' ] 
       |Verify 
      p[class='help-hint'] 
       = t('simple_form.hints.coupon.code') 

    div[class='row'] 
    div[class='col-md-12'] 
     = j.button :button, type: 'button', class: 'btn-primary text-uppercase', id: 'purchase-job' do 
     = job_posting_button_step_label 

Когда эта форма представляет, я вижу следующие атрибуты:

enter image description here

Это не правильно.

Я ожидаю, что код купона будет нулевым, а не «».

Я что-то упустил?

ответ

0

Я вижу две вещей:

первых:
:include_blank варианта для отдельных полей, он пропускает поколение пустого option тега в самом начале. code - поле ввода. Если вы хотите принудительно ввести входное значение, попробуйте required: true.

second:
Значения формы отправляются на сервер как application/x-www-form-urlencoded. Пустые вложенные поля отправляются, как, например, job[coupon_attributes][code]=. Не существует различия между пустой строкой и значением.
Соглашение в Rails заключается в том, чтобы интерпретировать все входные значения в виде строки (и позже указывать при присваивании значений моделям). Поэтому пустое значение всегда возвращается как ''.

+0

Благодарю вас за помощь, я ценю это. –

Смежные вопросы