在 Rails 中添加了列,未记录数据

Added Column in Rails, Data isn't recorded

我已经遇到同样的问题一个月了,找不到解决办法。

每当我向我的数据库中添加一个列时,该列不记录信息。我可以在我的表单中将信息传递给它,但这永远不会 return。

验证 return 一个错误,好像表单的那个字段是空的。

我已经尝试过 db:rollback、drop/create/migrate 和其他。

这是我的初始迁移,一切正常:

class CreateRequests < ActiveRecord::Migration[5.0]
  def change
    create_table :requests do |t|
      t.string :library
      t.string :librarian
      t.string :program
      t.string :email
      t.string :phone
      t.string :date
      t.string :time

      t.timestamps
    end
  end
end

这是我添加的两个迁移:

class AddAddressColumnToRequests < ActiveRecord::Migration[5.0]
  def change
    add_column :requests, :address, :string
  end
end

class AddConfirmationColumnToRequests < ActiveRecord::Migration[5.0]
  def change
    add_column :requests, :confirmation, :boolean
  end
end

这一直是我的祸根。让我知道还需要提供什么。 谢谢你。

确保在强参数中允许 addressconfirmation。代码应如下所示:

private
# Using a private method to encapsulate the permissible parameters is
# a good pattern since you'll be able to reuse the same permit
# list between create and update. Also, you can specialize this method
# with per-user checking of permissible attributes.
def request_params
  params.require(:request).permit(:library, :librarian, :program, :email, :phone,
                                    :date, :time, :age, :address, :confirmation)
end