No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Entender el enrutamiento b谩sico

8/36
Recursos

Aportes 16

Preguntas 3

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Reg铆strate o inicia sesi贸n para participar.

Entender el enrutamiento b谩sico


Vamos crear una ruta con ruby.

El m茅todo get en RoR nos hace un sistema de mapeo que conseguir谩 el m茅todo GET, y este va a buscar un $PATH llamado 鈥榟ola鈥, ahora a partir de ese mapeo va utilizar una equivalencia para enviarlo a un controlador y a una acci贸n dentro del controlador.

# routes.rb
Rails.application.routes.draw do
  # En este caso el PATH es 'hola', el controlador es 'welcome' y su acci贸n es 'hello'
  get 'hola', to: 'welcome#hello'
end

鈾 Rails utiliza la convenci贸n de que toda la l贸gica y construcci贸n que vamos a hacer sea utilizando el leguaje Ingl茅s.

Dentro de app 鈫 controllers vamos a crear los archivos de los controladores, para hacerlo tenemos que poner el nombre que tiene el controlador que definimos en la ruta y a帽adir al final _controller.rb

鈾 Para crear clases en Ruby debemos utilizar la convenci贸n de un sistema CamelCase.

Para convertir una clase en un controlador debemos utilizar una herencia de RoR que es llamada ApplicationController. Esta clase de ApplicationController dotar谩 una serie de funcionalidades y m茅todos que nos permitir谩n establecer nuestra clase WelcomeController como un controlador de RoR.

# welcome_controller.rb

class WelcomeController < ApplicationController
    # Este m茅todo 'hello' es una acci贸n en Rails
    def hello
        @var = Pet.first.name
        @var2 = Pet.first.breed

        @credentials = Rails.application.credentials.hello
    end
end

Para crear nuestra vista debemos ir a app 鈫 views y crear el directorio con el nombre del controlador y un archivo html llamado como la acci贸n.

# hello.html

Para prender el servidor de rails, escribimos el comando:

rails server

鈾 Para acceder a la ruta escribimos localhost:3000/hola

Si lo desean tambi茅n pueden colocar la ruta como

  get 'hola' => 'welcome#hello'

Rails provee varias maneras de escribir el mismo asunto

A los que les salga el error de dependencias de webpack hay que ejecutar el comando:
rails webpack:install

a mi me paso, y me funcion贸.

Si a alguno, como a mi aparece un error como el siguiente:

ActiveRecord::NoDatabaseError (FATAL:  database "mi_app_development" does not exist
):

Es porque la base de datos a煤n no ha sido creada, para arreglarlo basta con escribir:

rails db:create

Despu茅s ya solo se vuelve a iniciar el servidor y listo.

Me marca el siguiente error :
No template for interactive request
WelcomeController#hello is missing a template for request formats: text/html

NOTE!
Unless told otherwise, Rails expects an action to render a template with the same name,
contained in a folder named after its controller. If this controller is an API responding with 204 (No Content),
which does not require a template, then this error will occur when trying to access it via browser,
since we expect an HTML template to be rendered for such requests. If that鈥檚 the case, carry on.

Me pueden ayudar con esto porfa

Dentro del archivo config>routes.rb se definen todas las rutas de la aplicaci贸n.

Usando el m茅todo get har谩 un mapeo donde, a trav茅s de la petici贸n que llega desde el cliente al servidor va a mapear el m茅todo get.

Este m茅todo va a buscar el path que le asignemos y a partir del mapeo que realizar una equivalencia para enviarlo a un controlador y a una acci贸n dentro del controlador.

Rails permite usar el idioma ingl茅s, por lo que es recomendable nombrar los controladores en ingl茅s.

# <metodo> '<PATH>', to: <controlador>#<accion>
get 'hola', to: 'welcome#hello'

Todos los controladores deben ir en la carpeta app>controllers, por convenci贸n todos controladores terminan con el sufijo controller y usando snake case.

La clase dentro de cada controlador debe llamarse como el archivo pero usando camel case.

Para que la clase funcione como un controlador tiene que heredar de la clase que nos provee Rails llamada AppliactionController, que provee a la clase con una serie de funcionalidades y m茅todos que permitir谩 establecer el controlador.

class WelcomeController <ApplicationController

Las funciones que se definan dentro de la clase WelcomeController corresponder谩n a las acciones, en este caso hay definir una funci贸n llamada hello, que fue la que asignamos en la ruta.


Por 煤ltimo, hay que crear la vista que se va a renderizar cuando se haga la petici贸n al controlador. Las vistas se crean en la carpeta app>views. Dentro de esta carpeta se debe crear otra carpeta con el nombre del controlador y dentro un archivo con el nombre de la acci贸n con extensi贸n HTML. Para esta situaci贸n se crea una carpeta llamada welcome y dentro un archivo llamada hello.html.

Para correr un servidor de desarrollo para ver la aplicaci贸n funcionando se utiliza el comando rails server.

Nos dar谩 una direcci贸n local donde est谩 corriendo la aplicaci贸n. En esa direcci贸n se muestra una pantalla de bienvenida de Rails. Si queremos ver la vista que se cre贸 hay que a帽adir a la ruta /hola que es la ruta que definimos en el archivo routes.rb.

S煤per bien explicado. Mil gracias.

Esto es mucho mejor que JavaScript, en JS te tenias que descargar 1000 librerias para hacer un routing

Si tienen problemas al renderizar la p谩gina con el localhost:3000/hola
Les sugiero revisar la propuesta de MatNemeth en este link

cuando entro en localhost/3000/hola me sale el siguiente error

Routing Error
uninitialized constant WelcomeController.

y en la terminal me sale el siguiente error

ActionController::RoutingError (uninitialized constant WelcomeController):

Alguien me puede ayudar con este problema? que no se por que me sale si se conecta bien al servidor de rails pero cuando le ingreso la variaci贸n /hola ya no conecta.

Ser铆a bueno que explicaran cual es la diferencia entre tener las diferentes capas l贸gicas entre modelos y controladores para aplicar otros patrones de dise帽o.
Por lo dem谩s muy buena explicaci贸n.

Hola a todos!!!, Tuve muchos problemas para la instalaci贸n de Rails en mi Mac, si alguien m谩s no puede seguir con el curso porque no le corre, sigan este tutorial de instalaci贸n q es el m谩s completo q consegu铆 y funciona perfect.
https://install-rails-mac.com/#create-a-workspace-folder

que buenas clases

Yo tube problema al momento de ingresar el localhost:3000 , me salia error pero el servidor si levanto normal? que puede ser ? gracias

**Si tienen problemas con las librerias / gemas vean este video **

gemas