validates_inclusion_of funktioniert nicht mehr in Rails 4.1?

7

Der folgende Code stellte sicher, dass ein time_zone ausgewählt innerhalb der Zeitzonen in ActiveSupport::TimeZone.us_zones :

liegt %Vor%

Hat in Rails 4.0 gut funktioniert. Ich habe gerade einen Upgrade auf Rails 4.1 durchgeführt und erhalte diesen Fehler auf meiner Indexseite (also einfach nur die Modelle ansehen):

  

Ein Objekt mit der Methode #include? oder ein Proc, Lambda oder Symbol ist   erforderlich, und muss als die: in (oder: innerhalb) -Option der zur Verfügung gestellt werden   Konfigurationshash

Ich nehme an, dass ActiveSupport::TimeZone.zones_map(&:name) nicht länger ein gültiger Wert für die Eigenschaft in ist?

    
at. 09.04.2014, 00:10
quelle

3 Antworten

22

Versuchen Sie .keys ?

hinzuzufügen %Vor%     
house9 09.04.2014, 00:37
quelle
2

In Rails 5 ist ActiveSupport::TimeZone.zones_map eine private Methode. Daher, wenn Sie möchten, dass Ihre Validierung funktioniert, schlage ich die folgende Syntax vor:

%Vor%     
kogitoja 03.01.2017 08:00
quelle
1

Wenn Sie validates_inclusion_of weiterhin verwenden möchten, funktioniert das auch:

%Vor%     
Kasper Grubbe 14.04.2014 20:17
quelle