Si envías el formulario de nuevo, Rails se quejará de que no has definido la acción show
.
Esto no es muy útil así que vamos a agregar la acción show
antes de continuar. Abre
el archivo config/routes.rb
y agrega la siguiente ruta:
get "posts/:id" => "posts#show"
La sintaxis especial :id
le dice a Rails que la ruta espera un parámetro :id
,
el cual en nuestro caso será el id del artículo. Nota que en esta ocasión
debemos indicar la asignación real posts#show
porque de otra manera Rails no sabrá
qué acción debe realizar.
Como dijimos anteriormente, necesitamos agregar la acción show
en el posts_controller
y su respectiva vista.
def show
@post = Post.find(params[:id])
end
Un par de cosas a tener en cuenta. Usamos Post.find
para encontrar el artículo en el
cual estamos interesados. También usamos una variable de instancia (con el prefijo @)
para contener una referencia al objeto post
. Hacemos eso porque Rails pasará todas
las variables de instancia a la vista.
Ahora, crea un nuevo archivo app/view/posts/show.html.erb
con el siguiente contenido:
<p>
<strong>Title:</strong>
<%= @post.title %>
</p>
<p>
<strong>Text:</strong>
<%= @post.text %>
</p>
Finalmente, si vas a http://localhost:3000/posts/new serás capaz de crear un artículo. ¡Inténtalo!