【问题标题】:rails app - mongoid does not insert a new fieldrails app - mongoid 不插入新字段
【发布时间】:2016-08-28 14:22:57
【问题描述】:

我刚开始使用 rails-api 和 mongoDB (gem mongoid in rails) 在应用程序上创建。

我创建了这样的模型:

class User 
    include Mongoid::Document
    include Mongoid::Timestamps

    embeds_many :language
    accepts_nested_attributes_for :language

    field :name, type: String
    field :lastname, type: String
    field :mail, type: String
    field :passwd, type: String
    field :auth_token, type: String
end

我想在我的模型中添加另一个字段。

所以在我的模型末尾我添加了这个:

field :slug, type: String

但是当我插入一个新文档时,mongoid 没有检测到新字段并返回 null。

我尝试做 rake:migration 但对 mongodb 没用,我找不到问题。你能帮帮我吗?

最好的问候

【问题讨论】:

  • 您还可以为新字段添加默认值,这将为您的所有旧记录提供一个备用值。 field :slug, type: String, :default => ""

标签: ruby-on-rails ruby mongodb model mongoid


【解决方案1】:

很可能您没有将该新字段添加到您的强参数白名单中。

查看您的控制器并找到如下所示的一行:

params.require(:user).permit(:name, ...)

像这样添加slug

params.require(:user).permit(:name, ..., :slug)

【讨论】:

  • 有效!!我恨自己...谢谢你的帮助!
  • 更新模型和控制器后,我的更改仍然没有出现。我同时运行了 rails 控制台和 rails 应用程序。只有在我重新启动两者后,我才看到更改按预期显示。
  • @Stephen 我猜你是在生产模式下运行你的应用程序。在开发模式下,rails 会重新加载更改的类。
猜你喜欢
  • 2019-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-01
  • 2011-04-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多