2016-07-01 9 views
0

Lassen Sie mich ist versuchen, hier ein einfaches Beispiel zu präsentieren:Rails ungeschnittene Formularfelder, wenn db Spalte NULL

Ich habe Tabelle db Orders und eine Spalte delivery_address.

<%= form_for @order do |f| %>  
    <%= f.text_field :delivery_address %> 
<% end %> 

Wenn keine Änderung in der Form durchgeführt wird, wenn das Formular den Wert von Orders.delivery_address Änderungen von NULL zu leeren Wert vorgelegt.

und richtete ich einen Alarm Ankündigung, die wie folgt aussieht: mit Schienen Update-Aktion

[email protected] changed delivery_address to .

Jeder Vorschlag, wie man verhindert, dass die Aktualisierung db Felder mit NULL-Werten standardmäßig leer.

+1

Vielleicht ein anderes zu tun Ansatz ist erforderlich und Sie sollten sicherstellen, dass eine Lieferadresse IMMER durch Hinzufügen einer Anwesenheit der Validierung geliefert wird? – jamesc

Antwort

1

Sie so etwas wie dies im Modell tun könnte:

# In the Order model 
before_validation do 
    self.delivery_address = nil if delivery_address.blank? 
end 

Ich mag es nicht wirklich, dass dies geschieht, aber die andere Alternative ist es auf dem Controller-Ebene

Verwandte Themen