8
votes

form_for Nombre incorrect d'arguments dans les rails 4

J'utilise form_for tag et son travail dans les rails 3.0.4 Environnement. Mais quand j'ai essayé de mettre à jour mon projet aux rails 4.Il donne des erreurs suivantes

mauvais nombre d'arguments (3 pour 2). Voici mon code P>

   <%= form_for @email, :url => alerts_path do |f| %>
   <% end %>


5 commentaires

Essayez simplement avec <% = form_for @email do | F | %> <% fin%%>


J'ai également essayé cela, j'ai eu la même erreur que j'ai mentionnée ci-dessus.


Montrez-moi le code du contrôleur ..


J'ai eu un modèle @Contact et j'avais créé des champs virtuels init comme je ne voulais pas stocker les données, alors à ce moment-là, j'ai eu ce genre d'erreur, pour moi une solution créait des champs inscrits à l'aide de l'attribut virtuel.


Essayez des méthodes dans Config / Initialiseurs / Simple_Form.rb. J'ai changé la lambda dans config.label_text et je l'ai donnée 3 arguments au lieu de 2 et il a corrigé le problème pour moi


5 Réponses :


0
votes

Votre syntaxe est correcte. Essayez de changer comme ceci:

<%= form_for(@email, url: alerts_path) do |f| %>
  #form fields goes here
<% end %>


3 commentaires

Merci de votre aide mais j'ai essayé cette solution, cela me donne le même nombre de mauvais nombre d'arguments.


@ZeeshanmaHMOOD: Essayez d'ajouter Méthode :: Post avec URL et vérifiez.


Sont vos alertes ressources ou pas? Dans routes.rb ?



0
votes

Je ne peux voir aucun problème avec votre form_for, pouvez-vous poster une arrière-marche de l'exception? Peut-être qu'un autre gemme est un formulaire de valeur par défaut qui est remplacé?


1 commentaires

Comme le dit la réponse populaire, le gem de la clientèle client_side_validations peut également le causer



23
votes

Essayez de supprimer des choses qui peuvent essayer de changer les choses de points de vue.

Dans mon cas, le problème était avec client_side_validations gem

J'espère que cela aide.


1 commentaires

Ceci a été documenté et fixé sur git: github.com/davyjonesLocker/client_side_validations/issues/60 3 Je viens de changer mon gemfile pour pointer vers GitHub et il a fixé le problème



9
votes

Vous ne savez pas encore pourquoi, mais en supprimant le gemme "meta_search" de mon gemfile fixe ce problème exact pour moi sur des rails 4.

Si vous Google Ce problème, vous pouvez trouver ce GitHub Issue qui l'attribue à la GEM "Client_side_Validations", mais en utilisant la branche "Rails-4-Secours" suggérées de ce repo n'a pas réparer le problème pour moi.

Je pense que l'erreur avec simple_form_for était un hareng rouge, car je recevais la même erreur, même en utilisant des rails intégrés dans form_for et d'obtenir mal Nombre d'arguments (3 pour 2) quel que soit le nombre d'arguments que j'ai réellement passé dans une méthode.

meta_search n'a pas eu de nouvelle libération depuis le 2 février 2012, alors je ne peux donc supposer que quelque chose dans le gemme ne se comportait pas bien avec les rails 4. Si je découvre ce que le problème était spécifiquement, je vais mettre à jour cette réponse . Il semble un peu boiteux de devoir "arrêter d'utiliser" Meta_Search, mais c'est autant que je peux offrir jusqu'à présent. Merci!


2 commentaires

Merci bourgeon, cette mine fixe


Euh oh: / Nous utilisons ActiveAdMin et Meta_Search sont une dépendance. Nous ne pouvons donc pas passer à des rails 4 si nous voulons garder AA ??



0
votes

Supprimer GEM 'Meta_Search' à partir de votre fichier GEM et examinez plutôt à l'aide de GEM RANSACACACACK. https://github.com/actieCord-hackery/ransack


0 commentaires