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

Ruby on Rails 3 do Zero ao Deploy capitulo 6

pessoal não consigo salvar os comentários na pagina web. alguém pode me ajudar?

ActiveModel::ForbiddenAttributesError Extracted source (around line #4):

2 3 4 5 6 7

def create @job = Job.find(params[:job_id]) @comment = @job.comments.build(params[:comment]) @comment.save redirect_to @job end

Rails.root: c:/sites/job_board Application Trace | Framework Trace | Full Trace

app/controllers/comments_controller.rb:4:in `create'

Request

Parameters:

{"utf8"=>"✓", "authenticity_token"=>"P0Vu5xkHogkMtAYsSeRRDKCk9+1/xDyANLDse7efGn8=", "comment"=>{"name"=>"João", "body"=>"ComentárioComentárioComentárioComentárioComentário"}, "commit"=>"Send", "job_id"=>"4"}

Toggle session dump

_csrf_token: "P0Vu5xkHogkMtAYsSeRRDKCk9+1/xDyANLDse7efGn8=" session_id: "f618025d4eeba33d6dcb35db780f9b6e"

Toggle env dump

GATEWAY_INTERFACE: "CGI/1.1" HTTP_ACCEPT: "text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8" HTTP_ACCEPT_ENCODING: "gzip, deflate" HTTP_ACCEPT_LANGUAGE: "pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3" REMOTE_ADDR: "127.0.0.1" REMOTE_HOST: "127.0.0.1" SERVER_NAME: "localhost" SERVER_PROTOCOL: "HTTP/1.1"

4 respostas

Está usando Rails 4? Se sim, ele possui um modo diferente de lidar com parametros, recomendaria usar o 3, que é o usado no curso.

solução!

Obrigado mas... Resolvi usando o Rails 4:

def create @job = Job.find(params[:job_id]) @comment = @job.comments.build(comment_params) if @comment.save flash[:notice] = "Comment was created with success!" else flash[:alert] = "Please fill in all fields to create a comment." end redirect_to @job end

def comment_params params.require(:comment).permit(:body, :name) end

Obrigado Joaodeandrade estava com o mesmo problema.

Estava com o mesmo problema porem para adotar a correção que o Joaodeandrade mencionou acima eu tive que criar um método para funcionar

@job.comments.build(comment_params)

no lugar de

@comment = @job.comments.build(params[:comment])
def comment_params
   params.require(:comment).permit(:body, :job_id, :name)
end