2012-04-24 37 views
13

Desarrollador de Java desde hace mucho tiempo, primer desarrollador de Ruby. Intentando llegar al paso "hello world" con una aplicación Rails, y teniendo dificultades.Ruby on Rails: Hello World

Estoy seguro de que me falta algo básico aquí. Dicho esto, ninguna de las "Preguntas con títulos similares" de StackOverflow ni los éxitos de "ruby rails hello world" de Google (ni sus variantes) han aclarado lo que me falta.

Tengo Ruby (v1.9.3p194), gem (1.8.23) y rieles (3.2.3) instalados a través de RVM. Me genera un controlador usando:

rails generate controller common 

En el default "config/routes.rb", tengo los siguientes dos intentos de enrutamiento:

Web::Application.routes.draw do 
    root :to => "common#index" 
    match ':controller(/:action(/:id))(.:format)' 
end 

Cuando inicialmente me encontré "raíles del servidor" y cargado " http: // localhost: 3000/común "en mi navegador, vi lo siguiente:

Unknown action 
The action 'index' could not be found for CommonController 

aprendí esto se debe a que 'índice' no se definió para mi controlador común, por lo que he editado" app/controladores/common_controller.r b" para contener lo siguiente:

class CommonController < ApplicationController 

    def index 
    end 

end 

ahora veo lo siguiente en "http: // localhost: 3000/común" en mi navegador:

Template is missing 
Missing template common/index, application/index with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee]}. Searched in: * "/coding/workspace/[My] Toolbag/web/app/views" 

veo la misma cosa a la raíz, que tiene sentido

Por lo que he encontrado, esto se debe claramente a que no tiene nada renderizado en mi controlador, así que creo que debería estar buscando algo en "app/views/common/index.html.erb" - Sin embargo, tengo un archivo existe, que contiene lo siguiente:

<h1>Hello World</h1> 

también he intentado cambiar el nombre de "index.html.erb" a "_index.html.erb", "index.html", y " index ", todos basados ​​en las variantes Google del error de consola" ActionView :: Missing Template "y el resultado similar del navegador anterior.

Muchos de los resultados de Google contienen fragmentos de sugerencias, pero sin una orientación clara sobre qué archivo (s) editar con dichas sugerencias, o bien con repeticiones de los pasos que ya he tomado anteriormente.

Si alguien puede aconsejar lo que me estoy perdiendo, lo agradecería.

PD: Me estoy ejecutando como superusuario, con la propiedad "raíz: raíz" de todos los archivos a los que se hace referencia aquí. ¿Podrían los rieles ser ejecutados como un usuario regular? Aunque no parece que eso me permita llegar tan lejos si es el caso.

+0

No conozco la respuesta a tu pregunta, pero si te puedo recomendar, echa un vistazo a http://ruby.railstutorial.org/. Es sin duda el mejor Tutorial de Rails en la web. También tiene un gran tutorial "hello world". – sunnyrjuneja

Respuesta

10

Wow. De hecho, me encontré con el problema de raíz real:

Estaba creando mi proyecto dentro de una carpeta que tenía un corchete en el nombre, es decir, estaba ejecutando "rails new web" desde "/ coding/workspace/[Mi] bolsa de herramientas ".

Esta noche volví a intentarlo en "/ coding/workspace", y finalmente funcionó. De manera que he probado "carriles nueva web" desde dentro de las siguientes ubicaciones para dar cuerpo a mi sospecha:

/coding/workspace/test1 
/coding/workspace/test 2 
/coding/workspace/test [3] 
/coding/workspace/test [4 
/coding/workspace/test ]5 
/coding/workspace/test [6/subfolder 

Sospecha confirmada. Los proyectos de Rieles dentro de las carpetas 3,4,6 demuestran el problema que describí en esta pregunta, mientras que los proyectos de rieles dentro de las carpetas 1,2,5 funcionan muy bien.

En concreto, el problema es un paréntesis abierto en cualquier parte de la ruta: "["

estoy usando Linux Mint. El problema podría aplicarse aún más ampliamente, aunque todavía no he intentado reproducir en otras distribuciones, Windows o Mac.

Gracias a Brett Sanders por toda su asistencia repetida y la confirmación de que mi enfoque debería haber sido correcto, estoy enviando esta respuesta y marcando esta como correcta, en caso de que alguien más encuentre el mismo problema.

+0

me alegro de que lo hayas descifrado. probablemente debería agregar una etiqueta de linux en la publicación –

+0

. En realidad, me inclino a no hacerlo. Acabo de confirmar el mismo error en Mac OS X 10.7.3. A menos que alguien confirme que esto NO ocurre en Windows, entonces esto parece ser un problema en todas partes. – DreadPirateShawn

+1

Nota: Ahora archivado como un error en el repositorio Rails GitHub: https://github.com/rails/rails/issues/6010 – DreadPirateShawn

10

Eso es extraño. Simplemente repetí tus pasos exactamente y lo puse en funcionamiento (utilizando los carriles 3.2.3 y ruby ​​1.9.3-p0) y al visitar localhost: 3000/common obtuve el "Hola mundo"."

http://grab.by/dg6Y

Esto es lo que iba a tratar muy rápido, para asegurarse de que no es un problema con su configuración:

1) cd dentro de su directorio del proyecto rieles

2) tema éstas comandos de terminal

carriles nombre de usuario g andamio: email cadena: cadena

rake db: migrate

3) visite la URL http://localhost:3000/users

Si los rieles se ha configurado correctamente, debería ver esta

http://grab.by/dg74

Si estos pasos no funcionan, entonces algo raro parece estar sucediendo con tu configuración.

Además, asegúrese de eliminar el archivo public/index.html de su aplicación. Si no lo elimina, no podrá ver su página raíz personalizada, que ha especificado en su archivo de rutas.

Si lo anterior no funciona, ¿puede ser un problema con su versión de Ruby?

Espero que esto ayude!

+0

Estoy aceptando esta respuesta a pesar de que todavía no he fijado mi problema con la bola extraña.Dada su confirmación de que debería tener el enfoque correcto, pude volver a confirmar en una computadora diferente que mis cosas DEBEN estar funcionando. ¡Gracias! – DreadPirateShawn

+0

Lo intenté de nuevo usando ruby ​​(v1.9.3p194), gema (1.8.23) y rieles (3.2.3). Todavía no tuve problemas, así que no parece que la versión de Ruby sea el problema. ¿Has probado el andamio? –