2016-07-07 9 views
0

ich so einen Wert für ein Formularfeld gesetzt bin versucht:Ein Wert in einem Feld form_for

<%= form_for (@change_office_address), remote: true, format: :json, html: { class: :contact_form } do |f| %> 
    <%= f.text_field :city_id, class: 'form-control', value: @office.city.id, disabled: true %> 
    <%= f.submit, class: 'btn btn-default' %> 
<% end %> 

In Hinblick ich die ID in einem Feld sehen kann, aber als ich versuchte, die einreichen Form, ich sehe, dass die Validierung nicht besteht. Die Validierung sieht wie folgt aus:

class ChangeOfficeAddress < ApplicationRecord 
    belongs_to :city 
    validates :city_id, presence: true 
end 

In meinem Schema der Spalte city_id-integer gesetzt. Ich habe auch versucht, f.text_field zu f.number_field zu ändern, aber es half auch nicht. Also, was kann falsch sein? Danke voraus.

+0

Die Werte im deaktivierten Feld werden nicht übermittelt. Es empfiehlt sich, einige versteckte Felder zu verwenden, um die ID der Stadt zu behalten. –

Antwort

2

Ich denke, Sie sollten readonly: true statt disabled verwenden. Wegen disabled werden Ihre Daten nicht an Server übergeben.

<%= f.text_field :city_id, class: 'form-control', value: @office.city.id, readonly: true %> 
Verwandte Themen