J'ai 2 modèles "pays" et "League", le pays a de nombreuses ligues et la ligue appartient au pays. Lors de l'ajout d'une ligue, j'ai une liste de liste avec des pays et lorsque le formulaire est soumis, le pays réel est envoyé: mais je reçois ce message d'erreur: P> Country expected, got String
6 Réponses :
Vous devez envoyer Country_ID (qui est la clé principale) au lieu de nommer «l'Angleterre» dans cette demande. Les relations sont associées aux clés primaires.
<%= f.select :country, Country.all.collect {|c| [ c.name, c.id ] } %>
Je viens de faire ceci: <% = f.select: artiste, artiste.Allect.Collect {| a | [Nom, A.Id]}%> code> et obtenu ce
artiste (# 2198585660) attendu, got de chaîne (# 2151988680) code>
@Joesak, j'ai eu ce même problème et j'avais ajouté : artiste code> au lieu de
: artiste_id code> à la liste Paramètres autorisée dans mon contrôleur.
Je reçois cette erreur:
class OtherModel belongs_to :artist validates :artist, :presence => true #... end <%= form_for_other.collection_select :artist_id, Artist.all, :id, :name, :prompt => true %>
Où avez-vous dit cela, le modèle d'artiste?
@hubble Où avez-vous placé la validation?
Dans le modèle "appartient à" l'artiste "ou" has_one "
Le modèle de ligue doit faire référence au pays par son ID (pays_id) et non la chaîne. P>
Vous devez utiliser: country_id au lieu de: pays
Pour d'autres personnes qui répondent au même problème:
Cette erreur est dû au moment où vous avez deux champs de votre formulaire comme: p> puis rails s'écrasera avec l'erreur : Randis hachage (GET String) pour param p> La solution est assez simple: changez "vidéo" à autre chose. E.g.: P> video_origin_url: 'some string'
video['url']: 'some url'
Je reçois cette erreur:
Pays (#xxx) attendue, obtient une chaîne (#xxx) C'était comme ça que je l'ai réparé dans Rails 3.0.x: P>
<%= f.collection_select :country_id, Country.all.collect, :id, :name %>