Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Dúvida no Ex. 2 da Aula 5 - Atom e Content negotiation via URI

Com o código da explicação está sendo retornado o seguinte erro: SyntaxError in JobsController#index

/home/guilherme/Ubuntu One/Alura/curso-RA-02/app/controllers/jobs_controller.rb:40: syntax error, unexpected '}', expecting keyword_end /home/guilherme/Ubuntu One/Alura/curso-RA-02/app/controllers/jobs_controller.rb:111: syntax error, unexpected $end, expecting '}'

. O erro é resolvido colocando um end após o else:

respond_to do |format|
      format.html
      format.json { render json: @jobs }
      format.atom { 
        if @jobs.first
          @last_updated = @jobs.first.updated_at
        else
          @last_updated = Time.now
       end
      }
mas não exibe o retorno em ATOM.
6 respostas

Oi Guilherme,

Você criou o arquivo index.atom.builder dentro de app/views/jobs/?

Abraço!

Sim, está criado. Agora fiz algumas modificações, pois achei outro erro meu.... agr está com mensagem de algum método não encontrado, provavelmente alguma gem q tenho q instalar... já posto o erro.

Agora está apresentando o seguinte erro: NoMethodError in Jobs#index

Showing /home/guilherme/Ubuntu One/Alura/curso-RA-02/app/views/jobs/index.atom.builder where line #10 raised:

undefined method `strftime' for # Extracted source (around line #10):

Guilherme,

Coloca o código do seu index.atom.builder?

Abraço!

atom_feed language: 'en-US' do |feed| feed.title 'Jobs Board' feed.updated @last_updated

@jobs.each do |job| feed.entry(job) do |entry| entry.url url_for(job) entry.title job.title entry.content job.description entry.updated entry.updated_at.localtime.strftime("%Y-%m-%dT%H:%M:%SZ") entry.author do |author| author.name job.company.name end end end end

solução!

Achei a linha com erro ao rever o vídeo: entry.updated(job.updated_at.strftime("%Y-%m-%dT%H:%M:%SZ")) No exercício estava com um código, talvez como base para exemplificar e não para ser copiado (não sei qual a intenção) feito de um modo genérico:

@jobs.each do |job|
    feed.entry(job) do |entry|
      entry.url url_for(job)
      entry.title job.title
      entry.content job.description
      entry.updated entry.updated_at.strftime("%Y-%m-%dT%H:%M:%SZ")
    end 
  end
Alterado para (Exibindo o resultado esperado do exercício):
 @jobs.each do |job|
    feed.entry(job) do |entry|
      entry.url url_for(job)
      entry.title job.title
      entry.content job.description
      entry.updated(job.updated_at.strftime("%Y-%m-%dT%H:%M:%SZ"))
      entry.author do |author|
        author.name job.company.name
      end
    end 
  end