Dies ist das erste Mal, dass ich bin Aufzählungen mit Schienen 4 und ich lief in einige Probleme mit, haben einige schmutzige Lösungen im Sinn und wollten gibt es keine elegantere Lösungen an seinem Platz überprüfen:Rails 4 ENUM Validierung
Dies ist meine Tabelle Migration relevanter Teil:
create_table :shippings do |t|
t.column :status, :integer, default: 0
end
Mein Modell:
class Shipping < ActiveRecord::Base
enum status: { initial_status: 0, frozen: 1, processed: 2 }
end
Und ich habe dieses Stück meiner Meinung nach (mit einfacher Form für):
= f.input :status, :as => :select, :collection => Shipping.statuses, :required => true, :prompt => 'Please select', label: false
Also in meinem Controller:
def create
@shipping = Shipping.create!(shipping_params)
if @shipping.new_record?
return render 'new'
end
flash[:success] = 'Shipping saved successfully'
redirect_to home_path
end
private
def shipping_params
params.require(:shipping).permit(... :status)
end
Also, wenn ich Formular erstellen und senden die Aktion Feuer erzeuge ich diese Validierung Fehlermeldung erhalten:
'1' is not a valid status
Also dachte ich, ich, dass die Frage wusste war der Datentyp, also habe ich dieses Bit in das Modell eingefügt:
Aber das schien nichts zu tun, wie löste ich das? Hat jemand ähnliche Erfahrungen gemacht?