2010-12-16 13 views
9

bien, he estado siguiendo: http://railscasts.com/episodes/196-nested-model-form-part-1sin inicializar HomeController constante

Estos son los pasos que he tenido para llevar a cabo hasta el momento:

rails new survey 
<install the script stuff he includes> 
rails g nifty:layout 
rails g nifty:scaffold survey name:string 
rake db:migrate 

I actualizado routes.rb para apuntar a casa # índice (en lugar del índice bienvenido # que era) y eliminado public/index.html

Cuando intento ejecutar el servidor rails y acceder a mi host local, aparece el siguiente error. constante no inicializada HomeController

Estoy perdido y no tengo ni idea de lo que esto significa.

¿Puede alguien señalarme en la dirección correcta?

EDIT:

OK, así que me fijo ese problema, supongo que donde yo estoy confundido es donde deben apuntar a mis rutas de GE para ver la encuesta que acabo de crear utilizando los comandos anteriores. ahora estoy apuntando a mi índice de casa #, ¿a dónde debería referirse?

editar # 2: Contenido de Surveys_controller.rb

class SurveysController < ApplicationController 
    def index 
    @surveys = Survey.all 
    end 

    def show 
    @survey = Survey.find(params[:id]) 
    end 

    def new 
    @survey = Survey.new 
    end 

    def create 
    @survey = Survey.new(params[:survey]) 
    if @survey.save 
     flash[:notice] = "Successfully created survey." 
     redirect_to @survey 
    else 
     render :action => 'new' 
    end 
    end 

def edit 
    @survey = Survey.find(params[:id]) 
    end 

    def update 
    @survey = Survey.find(params[:id]) 
    if @survey.update_attributes(params[:survey]) 
     flash[:notice] = "Successfully updated survey." 
     redirect_to @survey 
    else 
     render :action => 'edit' 
    end 
    end 

    def destroy 
    @survey = Survey.find(params[:id]) 
    @survey.destroy 
    flash[:notice] = "Successfully destroyed survey." 
    redirect_to surveys_url 
    end 
end 
+0

¿Cuál es el contenido de/app/controllers/* y cómo es tu archivo routes.rb? –

+0

aplicación/controladores contiene application_controller, home_controller, y surveys_controller, (supongo que home_controller no existía hasta que ejecuté el comando que "contesté" a continuación), al buscar en surveys_controller, no me dio ninguna indicación de qué routes.rb debería Parece que, he intentado encuestas # nuevo, índice de encuesta # y algunas otras iteraciones ahora, y todavía no parece funcionar. – onaclov2000

+0

prueba runnin 'rake routes' desde la línea de comando para ver qué rutas tienes disponible – stephenmurdoch

Respuesta

16

Con routes.rb apuntando a home#index, necesita un HomeController en su carpeta de aplicaciones/controladores.

Si sigue exactamente el tutorial, puede señalar solo survey#index. Eche un vistazo a surveys.rb en la aplicación/controladores para ver qué páginas están disponibles. Se generaron con el script niffty_scaffold.

+0

Gracias, me di cuenta de esa parte hace unos momentos, pero todavía no estoy seguro de lo que necesito para apuntar mis rutas.rb para ver la encuesta que se supone que debe generarse ... debe Lo apunto a "encuesta" y eso es todo? – onaclov2000

+0

Sin dados, intenté encuestas # nuevas, y obtuve un método indefinido para el nuevo error. – onaclov2000

+0

he añadido en mi código para el controlador si eso ayuda, las encuestas no funciona por alguna razón, ya sea devuelve el error: ArgumentError falta: la acción Rails.root:/home/onaclov/ECE595/encuesta Aplicación de seguimiento | Seguimiento del marco | Rastreo completo – onaclov2000

8

resulta cuando intenta señalar al índice hogar #, tiene que tener algo allí, simplemente ejecutando

rails generate controller home index 

correcciones que problema.

+0

" necesita tener algo ahí "¿qué significa? ¿Podrías por favor ser más claro? –

+0

Seré sincero, han pasado 7 años, utilicé los rieles como una semana en una clase en ese momento, en este momento solo puedo especular que cuando los rieles estaban funcionando y usa su búsqueda a través de la ruta, necesita generar un controlador para home # index y el comando anterior lo hace, pero nuevamente hace 7 años. No se olvide – onaclov2000

3

palo de algo como esto en su archivo application.html.erb

<%= link_to "Home", root_path %> 
<%= link_to "Surveys", surveys_path %> 

El código va a explotar si no tiene esas rutas de trabajo, pero de lo contrario debe ser capaz de ver sus encuestas haciendo clic en el botón para ellos

Su archivo routes.rb debe contener lo siguiente:

resources :surveys 
root :to => "home#index" 

puede ver todas las encuestas por ir a localhost: 3000/encuestas

+0

NoMethodError en SurveysController # índice método indefinido 'all 'para Survey: Módulo: este es el error que obtengo en la página ... – onaclov2000

Cuestiones relacionadas