Ruby on rails zeigt keine erb Dateien an

Hallo
Ich habe auf meinem Mac das Ruby Framework installiert.
Den Server hab ich auf dem Desktop intsalliert.

Mit ruby script/generate controller Say
einen Kontroller Say generiert

ruby script/server webrick zeigt der Brwoser auch an das der Server läüft.

Habe eine Class SayController im Verzeichnis Controller gespeichert und unter app/views/say/hello.html.erb
eine HTML Seite mit textuellem Inhalt gespeichert

Wenn ich nun http://localhost:3000/say/hello aufrufe habe ich gestern die Meldung bekommen Template is Missing und heute Unknown action.

Hallo unknown action bedeutet, dass du im SayController keine entsprechende Methode definiert hast.

Viel Erfolg

Andreas

hab doch im Kontroller die Klasse mit der Funktion hello

class SayController

Hello, Rails! Hello from Rails!

Hallo borijee,

‚hello‘ gehört sicherlich nicht zu den Standard-Routes. Schau Dir doch mal die config/routes.rb an. Da stehen auch viele Beispiele drin.

HTH

John

Hallo,

du musst Rails sagen, dass es eine action mit dem namen hello gibt. Die gibt es nämlich standardmäßig nicht.
Das geht im einfachsten Fall mit

def hello
end

in der controllerdatei (bei den anderen actions).
Mehr Infos dazu gibts hier:
http://guides.rubyonrails.org/routing.html

Viele Grüße

Hallo Sokratesius

Ich habe eine solche Funktion
hab doch im Kontroller die Klasse mit der Funktion hello

Gespeichert: demo1/app/controllers/say_controller.rb

class SayController

Hello, Rails! Hello from Rails!

Hallo,

Ich habe auf meinem Mac das Ruby Framework installiert.
Den Server hab ich auf dem Desktop intsalliert.

Mit ruby script/generate controller Say
einen Kontroller Say generiert

ruby script/server webrick zeigt der Brwoser auch an das der
Server läüft.

Habe eine Class SayController im Verzeichnis Controller
gespeichert und unter app/views/say/hello.html.erb
eine HTML Seite mit textuellem Inhalt gespeichert

Wenn ich nun http://localhost:3000/say/hello aufrufe habe ich
gestern die Meldung bekommen Template is Missing und heute
Unknown action.

Ich bin zwar auch kein Rails-Experte (nur Ruby), aber soweit ich weiß, muß der Controller für jede View eine gleichnamige Methode („action“) haben, die die Daten für die View zur Verfügung stellt. In Deinem Fall also erstmal nur:

class SayController

Create eine neue Methode im SayController folgend:

def hello
end

und im config/route.rb musst du diese route registrieren, da hello nicht zu den standard-rest-methoden gehört. übrigens, die controller werden immer mit mehrzahl benannt. Wie folgt:

map.resources :says, :controller => ‚Says‘, :collection => {:hello => :get}

Server vielleicht nochmals neu starten…

Hi,

sorry, von Rails habe ich leider keine Ahnung.

Viele Grüße
Ralf