Agora podemos ver a tela dos nossos posts! Mas ainda não cadastramos nenhum, vamos fazer isso?
Acesse o blog pelo navegador.
Agora podemos clicar em New Post e vamos ir para outra tela, como a imagem abaixo. Podemos preencher os campos com as informações do post e clicar no botão Create Post
Após clicar no botão Create Post, vamos ir para uma página como a imagem abaixo.
A tela vai ter os dados do post que acabamos de criar, e uma mensagem de que foi criado com sucesso.
Mas a mensagem está em inglês, assim como um monte de outras coisas.
Vamos mudar isso?
Vamos começar a mexer no código agora :D
Vamos abrir o arquivo posts_controlles.rb
, que é o arquivo que controla todas as ações sobre os posts (lembra que comentamos sobre isso ao criar a rota?). Ele está em app/controllers/posts_controller.rb
Esse arquivo tem vários métodos (lembra como são métodos no ruby?), que estão separados nas ações de criar (create), atualizar (update), excluir (destroy), index (lembra a ação que colocamos no routes.rb?) - esta será a ação que lista todos nossos posts, show (mostrar o post).
Todas essas ações, são métodos padrões que o Rails cria automático para nós, quando executamos aquele primeiro comando para criar o Post.
Agora, vamos procurar no arquivo onde estão as mensagens que aparecem, quando criamos ou atualizamos um post.
Por exemplo, você pode procurar o método create
, deve ser algo como o código abaixo:
def create
@post = Post.new(post_params)
respond_to do |format|
if @post.save
format.html { redirect_to @post, notice: 'Post was successfully created.' }
format.json { render :show, status: :created, location: @post }
else
format.html { render :new }
format.json { render json: @post.errors, status: :unprocessable_entity }
end
end
end
Esse é o método chamado quando clicamos no botão Create post.
Ele cria um post novo, com os dados que colocamos nos campos e retorna o html que mostra o post, informando a mensagem. Vamos primeiro mudar a mensagem de sucesso. Você pode procurar o método create
, na linha onde está escrito
format.html { redirect_to @post, notice: 'Post was successfully created.' }
Vamos alterar para
format.html { redirect_to @post, notice: 'O post foi criado com sucesso.' }
O método todo deve ficar mais ou menos assim:
def create
@post = Post.new(post_params)
respond_to do |format|
if @post.save
format.html { redirect_to @post, notice: 'O post foi criado com sucesso.' }
format.json { render :show, status: :created, location: @post }
else
format.html { render :new }
format.json { render json: @post.errors, status: :unprocessable_entity }
end
end
end
Agora é a sua vez, pode fazer o mesmo no método update e destroy :D
Vamos acessar no navegador a mesma url que foi usada antes :)
Vamos criar um post novo, e ver o que acontece.
Yeyy, nossa mensagem está em português!
Precisamos conversar um pouquinho sobre outraaaa linguagem, HTML. Vai ser rapidinho ;P