Immer ArgumentError falsche Anzahl von Argumenten (0: 1)
Wenn ich meine Anwendung, die ich erhalte die folgende Fehlermeldung:
ArgumentError in StatesController#filter
wrong number of arguments (0 for 1)
Mein controller sieht wie folgt aus:
class StatesController < ApplicationController
def filter(my_string)
@new_array = []
@new_array = state.each {|x| if /#my_string/i =~ x then puts x end}
return @new_array
end
end
Und meine Ansicht sieht so aus:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>States</title>
</head>
<body>
<% States.filter(params[:substring]) %>
<p><%= @new_array.each %></p>
<% if @new_array.size = 0 %>
<p>No matches!</p>
</body>
</html>
Was falsch mit meinem code?
vielen Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die filter-Methode Sie haben in der StatesController ist eine Aktion. Solche Handlungen nicht akzeptieren Parameter. Eine bessere Möglichkeit das zu erreichen, was Sie versuchen zu tun wäre, um ein Modell zu erstellen, genannt Staat so gerne. Und fügen Sie die filter-Methode es:
In Ihrem controller haben, sollten Sie etwas wie das folgende:
Dann in der entsprechenden Sicht:
Was dieser tut, ist mit dem Modell um ein array zu laden, die in eine Instanz-variable. Diese Instanz-variable (Schritte mit dem @) ist zugänglich in der view gerendert wird, die in der controller-action. Die Maßnahmen, die wir mit angegeben ist, als filter.
In der Ansicht, ich prüfen, ob es irgendwelche Ergebnisse in das array mit den leeren? Methode. Ansonsten habe ich nur eine Schleife über das array.
Nun, dies wird nur funktionieren, vorausgesetzt, Sie haben die params[:sub_string] in den Kopfzeilen. So werden Sie brauchen, um sicherzustellen, Sie haben so etwas wie
?sub_string=mystring
in der url.Gegeben, Ihre Frage und Ihre code-layout, würde ich davon ausgehen, Sie sind Recht neu Schienen. Ich wirklich empfehlen, eine gute Lesen Sie das Handbuch " erste-Schritte-Anleitung hier: http://guides.rubyonrails.org/getting_started.html