刚接触Rails,按照headfirst上的教程,向一个已经创建好的数据库中添加新的字段phone,但是好像没有添加进去,代码如下:
rails generate migration AddPhoneToTickets phone:string
并使用迁移:
rake db:migrate
项目下的db下的migrate下的文件也变了:
class AddPhoneToTickets < ActiveRecord::Migration[5.1]
def change
add_column :tickets, :phone, :string
end
end
但是在网页上提交的时候还是没有添加进去,如图:
求大佬解答!!多谢
应该是新添加的属性没有加入白名单。
Rails 里面有个特性叫 健壮参数 (http://guides.rubyonrails.org...),Active Model 无法直接使用 params 批量赋值,只有加入白名单的参数才会被 Active Model 读取。
你可以查看一下 UsersController 里面应该会有一个方法叫做 user_params,这个方法是把 params 里面的参数加入白名单,可以把 :phone 添加进去试试。