【发布时间】:2013-09-14 13:38:47
【问题描述】:
我正在尝试 railscast#238。 我正在使用 rails 4 和 mongoid(4.0.0)。尝试使用 date_select 帮助器添加 published_on 字段时。它无法保存到集合中。 然后,我在 permit 函数中添加了 :published_on 。但后来我也遇到了错误。 我也试过包括 Mongoid::MultiParameterAttributes 但没有找到。我认为它已从 mongoid 中删除。 以下是日志文件中的错误:
日志文件
由 ArticlesController#update 处理为 HTML 参数:{"utf8"=>"✓", "authenticity_token"=>"3+y5UUckEDqJRPwdibdlhwAxKHi1g2ECF/4SzFNVbJE=", "article"=>{"name"=>"sachin", "published_on(1i)"=>" 2013", "published_on(2i)"=>"4", "published_on(3i)"=>"10", "content"=>"s'up?"}, "commit"=>"更新文章", “id”=>“522f4ce6f0b1817131000001”} MOPED:127.0.0.1:27017 QUERY 数据库=mongs_development 集合=文章选择器={"_id"=>"522f4ce6f0b1817131000001"} 标志=[:slave_ok] 限制=0 跳过=0 批次大小=nil 字段=nil (0.5178ms) 在 3ms 内完成 500 内部服务器错误
Mongoid::Errors::UnknownAttribute ( 问题: 尝试设置模型文章上不允许的“published_on(1i)”值。 概括: 如果在模型中不包含 Mongoid::Attributes::Dynamic 并且属性哈希中不存在该属性,则尝试调用 Article#published_on(1i)= 是不允许的。这也是通过将属性传递给任何接受属性哈希的方法来触发的,并且引发而不是获取 NoMethodError。 解决: 如果您希望经常为未定义的字段写入值,则可以包含 Mongoid::Attributes::Dynamic。): app/controllers/articles_controller.rb:44:in
block in update' app/controllers/articles_controller.rb:43:inupdate'
如果我从许可中删除 published_on:
参数:{"utf8"=>"✓", "authenticity_token"=>"3+y5UUckEDqJRPwdibdlhwAxKHi1g2ECF/4SzFNVbJE=", "article"=>{"name"=>"sachin", "published_on(1i)" =>"2013", "published_on(2i)"=>"9", "published_on(3i)"=>"10", "content"=>"s'up?"}, "commit"=>"更新文章", "id"=>"522f4ce6f0b1817131000001"} MOPED:127.0.0.1:27017 COMMAND 数据库=管理员命令={:ismaster=>1}(0.6187 毫秒) MOPED: 127.0.0.1:27017 QUERY 数据库=mongs_development 集合=文章选择器={"_id"=>"522f4ce6f0b1817131000001"} 标志=[:slave_ok] 限制=0 跳过=0 批次大小=nil 字段=nil (0.2012ms) 不允许的参数:published_on(1i)、published_on(2i)、published_on(3i) 重定向到
http://localhost:3000/articles/522f4ce6f0b1817131000001
在 5 毫秒内发现完成 302
在 2013-09-10 23:19:34 +0530 开始 GET "/articles/522f4ce6f0b1817131000001" for 127.0.0.1 由 ArticlesController#show 处理为 HTML 参数:{“id”=>“522f4ce6f0b1817131000001”} MOPED:127.0.0.1:27017 QUERY 数据库=mongs_development 集合=文章选择器={"_id"=>"522f4ce6f0b1817131000001"} 标志=[:slave_ok] 限制=0 跳过=0 批次大小=nil 字段=nil (0.3569ms) 在布局/应用程序中渲染文章/show.html.erb (0.6ms) 在 9 毫秒内完成 200 次 OK(查看次数:7.4 毫秒)
有人可以解决这个问题吗?
【问题讨论】:
标签: ruby-on-rails mongodb mongoid ruby-on-rails-4 railscasts