Ruby on rails railscast#238问题,日期#选择不使用rails 4。

Ruby on rails railscast#238问题,日期#选择不使用rails 4。,ruby-on-rails,mongodb,mongoid,ruby-on-rails-4,railscasts,Ruby On Rails,Mongodb,Mongoid,Ruby On Rails 4,Railscasts,我在试railscast#238。 我使用的是rails 4和mongoid(4.0.0)。当尝试添加带有日期的已发布字段时,请选择帮助器。无法保存到集合中。 然后,我在permit函数中添加了:published_on。但我也会犯错误。 我还尝试了包含Mongoid::MultiParameterAttributes,但没有找到。我想它已经从mongoid中删除了。 以下是日志文件中的错误: 日志文件 ArticlesController处理#更新为HTML 参数:{“utf8”=>“✓",

我在试railscast#238。 我使用的是rails 4和mongoid(4.0.0)。当尝试添加带有日期的已发布字段时,请选择帮助器。无法保存到集合中。 然后,我在permit函数中添加了:published_on。但我也会犯错误。 我还尝试了包含Mongoid::MultiParameterAttributes,但没有找到。我想它已经从mongoid中删除了。 以下是日志文件中的错误:

日志文件 ArticlesController处理#更新为HTML 参数:{“utf8”=>“✓", "真实性令牌“=>”3+Y5Uuckedqjrpwdilhwaxkhi1g2ecf/4SzFNVbJE=“,”文章“=>”{“名称”=>“sachin”,“发布于(1i)”=>“2013”,“发布于(2i)”=>“4”,“发布于(3i)”=>“10”,“内容”=>“s'up?”,“提交”=>“更新文章”,“id”=>“522F4CE6F0B18131000001” MOPED:127.0.0.1:27017查询数据库=mongs_开发集合=文章选择器={“\u id”=>“522f4ce6f0b1817131000001”}标志=[:从\u确定]限制=0跳过=0批处理大小=nil字段=nil(0.5178ms) 在3毫秒内完成500个内部服务器错误

Mongoid::错误::未知属性( 问题: 试图为模型项目上不允许的“已发布的(1i)”设置值。 总结: 如果不在模型中包含Mongoid::Attributes::Dynamic,并且属性哈希中不存在该属性,则不允许尝试调用(1i)=上的文章#published_。这也会通过将属性传递给接受属性哈希的任何方法触发,并引发而不是获取NoMethodError。 决议: 如果希望经常为未定义的字段写入值,则可以包括Mongoid::Attributes::Dynamic。): app/controllers/articles\u controller.rb:44:in
block in update'
app/controllers/articles\u controller.rb:43:in
update'

如果我从许可证中删除已发布的内容:

参数:{“utf8”=>“✓", "真实性令牌“=>”3+Y5Uuckedqjrpwdilhwaxkhi1g2ecf/4SzFNVbJE=“,”文章“=>”{“名称”=>“sachin”,“发布于(1i)”=>“2013”,“发布于(2i)”=>“9”,“发布于(3i)”=>“10”,“内容”=>“s'up?”,“提交”=>“更新文章”,“id”=>“522F4CE6F0B18131000001” MOPED:127.0.0.1:27017命令数据库=管理命令={:ismaster=>1}(0.6187ms) MOPED:127.0.0.1:27017查询数据库=mongs_开发集合=文章选择器={“\u id”=>“522f4ce6f0b1817131000001”}标志=[:从\u确定]限制=0跳过=0批处理大小=nil字段=nil(0.2012ms) 未允许的参数:在(1i)上发布、在(2i)上发布、在(3i)上发布 重定向到

5毫秒内完成302次

2013年9月10日23:19:34+0530开始获取127.0.0.1版本的“/articles/522f4ce6f0b1817131000001” ArticlesController处理#显示为HTML 参数:{“id”=>“522f4ce6f0b1817131000001”} MOPED:127.0.0.1:27017查询数据库=mongs_开发集合=文章选择器={“\u id”=>“522f4ce6f0b1817131000001”}标志=[:从\u确定]限制=0跳过=0批处理大小=nil字段=nil(0.3569ms) 布局/应用程序中的呈现文章/show.html.erb(0.6ms) 在9毫秒内完成200 OK(视图:7.4毫秒)


有人能解决这个问题吗?

我敢打赌你有这个功能

定义项目参数 参数要求(:物品)。允许!(:发表于) 结束

但您还需要…

Article.create(article_params)
不是

Article.create(params[:article])
希望这有帮助


-Brian

您需要在文档类中包含
Mongoid::multiparametertattributes

在Mongoid 4.0中,您还需要在yor
lib/
文件夹中定义该模块。 请参见中的详细说明

Article.create(params[:article])