2011-09-24 10 views
5

Sono nuovo a Ruby on Rails sto ottenendo questo erroreerrore di routing in Ruby on Rails 3

inizializzata costante WelcomeController

dopo aver creato il progetto di esempio. Ho attivato

root :to => 'welcome#index' 

in routes.rb.

+2

Ho anche ottenuto questo errore quando si utilizza la guida introduttiva: http://guides.rubyonrails.org/getting_started.html Devi cambiare in realtà la linea di indicizzare casa # come Mohan Raj dice nel suo commento qui sotto . Non basta non commentare la linea. – bernie2436

risposta

1

Assicurarsi WelcomeController è definito in un file chiamato welcome_controller.rb

12

Quando si dice

root :to => 'welcome#index' 

che stai dicendo Rails per inviare tutte le richieste per / al metodo index in WelcomeController. Il messaggio di errore ti dice che non hai creato la tua classe WelcomeController. Si dovrebbe avere qualcosa di simile:

class WelcomeController < ApplicationController 
    def index 
    # whatever your controller needs to do... 
    end 
end 

in app/controllers/welcome_controller.rb.

+1

Ciao ho trovato la soluzione solo ho cambiato root: to => 'home # index'. Ho creato il controller di casa. Quindi imposta la rotta verso casa. – Raj

+0

@MohanRaj dovresti accettare questa risposta come corretta, così com'è. – thomasfedb

5

Sono molto nuovo di Rails e ho riscontrato questo errore mentre seguivo Rails Tutorial di Michael Hartl. Il problema che ho avuto è stato che nel file config/routes.rb, ho solo senza commenti la root :to => "welcome#index":

# just remember to delete public/index.html. 
root :to => "welcome#index" 

ma con la struttura del sample_app era che "l'indice di benvenuto #" dovrebbe essere 'pagine # casa', invece, dal momento che tutto era originariamente impostato tramite il controller "pagine".

root :to => 'pages#home' 

E 'ancora lì nel libro, ma ho appena trascurato e ha trascorso un po' di tempo dopo, cercando di capire dove ho sbagliato.

1

rails generate controller welcome index

+0

Il generatore imposta il percorso per te. Rails.application.routes.draw do get 'welcome/index' fine –

1

Se non si genera la pagina con nome welcome, poi basta generare la pagina come: $ rails generate controller pagename index. Così poi in: config-> routes.rb si dovrebbe modificare root 'il benvenuto # index' a root 'nomepagina # index'

0

Mantenere questo se si vuole che sia la vostra root del contesto dopo aver genera le tue parti di benvenuto.

Rails.application.routes.draw do 
    root 'welcome#index' 
end 
+0

Anni di ritardo e migliaia di brevi. :-) –