【问题标题】:Added Column in Rails, Data isn't recorded在 Rails 中添加列,不记录数据
【发布时间】:2017-07-23 03:55:32
【问题描述】:

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

每当我向我的数据库添加一列时,该列都不会记录信息。我可以以我的形式将信息传递给它,但它永远不会返回。

验证返回错误,好像表单的该字段为空。

我已经尝试过 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

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

【问题讨论】:

  • 你能上传你的request_controller.rb 可能是强参数错误

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


【解决方案1】:

确保您在强参数中允许 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 2013-06-12
    • 1970-01-01
    • 2021-11-17
    相关资源
    最近更新 更多