我正在尝试 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 database=mongs_development collection=articles selector={"_id"=>"522f4ce6f0b1817131000001"} flags=[:slave_ok] limit= 0 skip=0 batch_size=nil fields=nil (0.5178ms) Completed 500 Internal Server Error in 3ms
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:in
update'
如果我从许可中删除 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 database=admin command={:ismaster=>1} (0.6187ms) MOPED: 127.0.0.1:27017 QUERY database=mongs_development collection=articles selector={ "_id"=>"522f4ce6f0b1817131000001"} flags=[:slave_ok] limit=0 skip=0 batch_size=nil fields=nil (0.2012ms) 不允许的参数:已发布_on(1i)、已发布_on(2i)、已发布_on(3i) 重定向到
http://localhost:3000/articles/522f4ce6f0b1817131000001
完成 302 发现在 5ms
在 2013 年 9 月 10 日 23:19:34 +0530 由 ArticlesController#show 处理为 HTML 参数:{“id”=>“522f4ce6f0b1817131000001”} MOPED:127.0.0.1 开始 GET "/articles/522f4ce6f0b1817131000001" 27017 QUERY database=mongs_development collection=articles selector={"_id"=>"522f4ce6f0b1817131000001"} flags=[:slave_ok] limit=0 skip=0 batch_size=nil fields=nil (0.3569ms) 渲染文章/show.html.erb在布局/应用程序内(0.6 毫秒)在 9 毫秒内完成 200 次 OK(查看次数:7.4 毫秒)
有人可以为此提供解决方案吗?