Ruby on Rails 4 - 在向模型添加一个额外字段后无法更新数据

时间:2013-07-10 16:49:13

标签: ruby-on-rails ruby ruby-on-rails-4 rails-migrations

我按照以下方式构建了一个RoR应用程序:
(我在键入命令时处于应用程序根目录)

1-创建门票表

rails generate scaffold ticket name:string seat_id_seq:string address:text price_paid:decimal email_address:string
rake db:migrate RAILS_ENV=development
rake db:migrate RAILS_ENV=test
rake db:migrate RAILS_ENV=production

2 - 应用程序可以工作,我可以通过RoR Web界面将数据添加到数据库

3 - 我在电话字段中添加了电话字段

rails generate migration AddPhoneToTickets phone:string
rake db:migrate RAILS_ENV=development
rake db:migrate RAILS_ENV=test
rake db:migrate RAILS_ENV=production

4 - 我更新了以下VIEW文件,将手机字段添加到VIEW文件

sudo nano app/views/tickets/_form.html.erb
sudo nano app/views/tickets/index.html.erb

5 - 应用程序有效,但我无法将手机添加到现有的故障单记录或新记录中。

如果我在这里遗漏了什么,请告诉我。

2 个答案:

答案 0 :(得分:1)

您应该显示Ticket的模型。并且还要确保阅读您的服务器日志。

但很可能您未能将phone添加到attr_accessible

attr_accessible ..., :phone

对于Rails 4,请参阅OP的答案。

答案 1 :(得分:1)

所以我按照 Deefour 的评论更新 app / controllers / tickets_controller.rb 文件。
我只修改了 ticket_params 方法来添加手机字段,现在一切正常。

# Never trust parameters from the scary internet, only allow the white list through.
    def ticket_params
      params.require(:ticket).permit(:name, :seat_id_seq, :address, :price_paid, :email_address)
    end

# Never trust parameters from the scary internet, only allow the white list through.
    def ticket_params
      params.require(:ticket).permit(:name, :seat_id_seq, :address, :price_paid, :email_address, :phone)
    end