2013-04-29 10 views
8

Ich benutze form_for tag und seine Arbeit in Rails 3.0.4 Umgebung. Aber als ich versuchte, mein Projekt zu aktualisieren Rails 4.Es gibt folgende Fehlerform_for falsche Anzahl von Argumenten in Schienen 4

falsche Anzahl der Argumente (3 für 2). Hier ist mein Code

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

versuchen Sie es einfach mit <% = form_for @email do | f | %> <% end %> –

+1

Ich habe das auch versucht, ich habe den gleichen Fehler, den ich oben erwähnt habe. –

+0

Zeig mir den Controller-Code .. –

Antwort

0

arbeitet ich kein Problem mit Ihrem form_for sehen kann, können Sie Backtrace Ausnahme posten? möglicherweise ein anderes Juwel überschreibt default form_for?

+5

Ja, das Problem liegt an einem anderen Juwel 'Meta-Suche'. –

+1

als die populäre Antwort sagt, client_side_validations Juwel kann es auch verursachen – nurinur

0

Ihre Syntax ist korrekt. Versuchen Sie es wie folgt zu ändern:

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

Ich habe versucht, es zu sehen, ob für form_for in Rails 4.0 API jede Änderung Sourcecode ist; Es ist immer noch dasselbe.

Werfen Sie einen Blick auf Linie 262 in https://github.com/rails/rails/blob/master/actionpack/lib/action_view/helpers/form_helper.rb

Lassen Sie mich wissen, ob es

+0

Danke für Ihre Hilfe, aber ich habe diese Lösung versucht, es gibt mir die gleiche falsche Anzahl von Argumenten Fehler. –

+0

@ZeeshanMahmood: Versuchen Sie 'method:: post 'zusammen mit' url' hinzuzufügen und überprüfen Sie. – kiddorails

+0

Ich habe das auch schon ausprobiert aber das hilft mir auch nicht. –

23

Versuchen Sie, Dinge zu entfernen, die versuchen, Dinge in Sichten zu ändern.

In meinem Fall war das Problem mit client_side_validations gem

Hoffnung, das hilft.

+0

Danke. Gott segne dich! – ck3g

+2

Was war das Problem? Wie hast du es gelöst? – coorasse

+0

Dies wurde dokumentiert und auf Git: https://github.com/DavyJonesLocker/client_side_validations/issues/603 Ich habe gerade meine Gemfile auf Github zeigen und es behoben das Problem – Tigraine

9

nicht sicher, warum noch nicht, aber die „meta_search“ Juwel von meinem Gemfile Entfernen fixiert genau dieses Problem für mich on Rails 4.

Wenn Sie dieses Problem google können Sie diese GitHub issue finden, dass es den „client_side_validations Attribute "Juwel, aber die Verwendung der vorgeschlagenen" rails-4-quick-fixes "Zweigstelle dieses Repos behebt das Problem nicht für mich.

denke ich, dass der Fehler bei simple_form_for eine falschen Fährte war, als ich den gleichen Fehler wurde sogar Rails gebaut in form_for verwendet und wurde immer wrong number of arguments (3 for 2) unabhängig davon, wie viele Argumente, die ich eigentlich in jede Methode übergeben.

meta_search hat seit dem 2. Februar 2012 keine neue Version, daher kann ich nur annehmen, dass sich etwas in der Perle nicht gut mit Rails 4 verhalten hat. Wenn ich das Problem speziell finde, werde ich das aktualisieren Antworten. Es scheint irgendwie lahm zu sein, "meta_search zu beenden", aber das ist so viel wie ich bisher anbieten kann. Vielen Dank!

+0

Dank Knospe, das meine behoben –

+1

uh oh : -/Wir verwenden ActiveAdmin und Meta-Suche ist eine Abhängigkeit. Also können wir nicht auf Rails 4 upgraden, wenn wir AA behalten wollen? – sixty4bit

Verwandte Themen