Le pays devrait, eu erreur de Chaîne
J'ai 2 modèles de "Pays" et "la Ligue", le Pays a beaucoup de Ligues et de la Ligue appartient Pays. Lors de l'ajout d'une ligue, j'ai une listbox avec les pays et lorsque le formulaire est soumis, le pays est envoyer:
{"commit"=>"Create League",
"authenticity_token"=>"wuAuj5vowkk2R56TuFkWE8J3x3vue5RbnNPcbpjuG3Q=",
"utf8"=>"✓",
"league"=>{"league_short"=>"CL",
"country"=>"England",
"level"=>"2",
"league"=>"The Championship"}}
Mais puis-je obtenir ce message d'erreur:
Country expected, got String
Dans le Pays modèle que j'ai country_id (entier) et le pays (chaîne de caractères) en tant que champs, dans la Ligue modèle que j'ai de pays comme champ de type chaîne. Dans la Ligue de contrôleur, j'ai ceci à pouplate la liste déroulante: @countries = Country.dropdown_list
. Dans la ligue/nouveau point de vue, j'ai ce champ de sélection: <%= f.select :country, @countries %>
. Ce qui ne va pas?
OriginalL'auteur John | 2011-04-19
Vous devez vous connecter pour publier un commentaire.
Vous devez envoyer country_id (qui est la clé primaire) au lieu du nom de l'Angleterre dans cette demande. Les relations sont associés avec les clés primaires.
J'ai juste fait:
<%= f.select :artist, Artist.all.collect {|a| [a.name, a.id] } %>
et a obtenu ceArtist(#2198585660) expected, got String(#2151988680)
J'ai eu ce même problème et a ajouté
:artist
au lieu de:artist_id
à l'permises liste des paramètres dans mon contrôleur.OriginalL'auteur Syed Aslam
Vous devez utiliser :country_id au lieu de :pays
OriginalL'auteur Jonathan Roy
Je recevais ce message d'erreur:
C'était la façon dont je l'ai corrigé dans les Rails 3.0.x:
Si cela a fonctionné quand j'ai créé la méthode sur le collection_select d'entrée pour la clé étrangère à la place du nom du modèle
où avez-vous la place de la validation?
Dans quel que soit le modèle "belongs_to" ou "has_one" Artiste
OriginalL'auteur Joe Sak
La Ligue modèle de référence pays par son id ( country_id ) et non pas la chaîne.
OriginalL'auteur mirage88
pour les autres, qui a rencontré le même problème:
cette erreur est provoquée lorsque vous avez deux champs de votre formulaire comme:
alors que les rails de crash avec le message d'erreur:: Hash (Chaîne de caractères) pour les param
la solution est assez simple: le changement "vidéo" pour quelque chose d'autre. par exemple:
OriginalL'auteur Siwei Shen 申思维
Je recevais ce message d'erreur:
Pays (#xxx) attendu, a obtenu de la Chaîne (#xxx)
C'était la façon dont je l'ai corrigé dans les Rails 3.0.x:
OriginalL'auteur Surge Pedroza