JavaFree.org | RubyOnBr.org

db:migrate erro me ajudem please.

Acompanhar db:migrate erro me ajudem please. 4 posts, 4 participantes

Avatar Henrique 3 posts

Estava acompanhando o livro Use a Cabeça : Rails, e quando fui adicionar um novo campo em minha tabela com o migrate deu o seguinte erro.

ActiveModel::MassAssignmentSecurity::Error in TicketsController#create

Can’t mass-assign protected attributes: phone
Rails.root: D:/Projetos/Rails/tickets

Application Trace | Framework Trace | Full Trace
app/controllers/tickets_controller.rb:44:in `new’
app/controllers/tickets_controller.rb:44:in `create’
Request

Parameters:

{"utf8"=>"✓",
“authenticity_token”=>"yem5htcGfywWti8Y1jMZAeNvxqqhxFmiBH1zIqFHaAA=",
“ticket”=>{"name"=>"rfsref",
“seat_id_seq”=>"dff",
“address”=>"asdfasdf",
“price_paid”=>"33",
“email_address”=>"asdfasd",
“phone”=>"5555"},
“commit”=>"Create Ticket"}
Show session dump

Show env dump

Response

Headers:

Usei os seguintes comandos
rails new tickets

rails generate scaffold ticket name:string seat_id_seq:string address:text price_paid:decimal email_address:string

rake db:migrate

rails generate migration AddPhoneToTicket phone:string

rake db:migrate

alterei os seguintes arquivos em views/tickets:

_form.html.erb

show.html.erb

index.html.erb

Me ajudem nessa ai galera, estou começando agora.
Muito obrigado.

 
Avatar Stclara 209 posts

Salve, amigo. Isto vc resolve no model, a mensagem diz: Can’t mass-assign protected attributes: phone.
Lá no model vc deve colocar: attr_accessible :phone.

[]’s

Stclara.

 
Laerciocrestani Laércio Crestani 21 posts

Á aplicação não está conseguindo ver o :phone, pois ela não esta atribuida. É só add ele no Model, como o amigo Stclara falou ai.

Abraços.

 
Avatar Vinicius Gati 383 posts

Aconteceu esse erro porque você não está usando a mesma versão de rails do livro.
Nas novas versões você precisa falar quais atributos podem ser criador atravéz de atribuição em massa de valores.

Para fazer isso só seguir a dica do amigo stClara acima