加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails-3 – 带有mongoid的rails 3中的嵌套属性问题(嵌套

发布时间:2020-12-17 01:29:19 所属栏目:百科 来源:网络整理
导读:所以我有一个简单的应用程序,如 RailsCast about nested forms.,问题是,当我提交表格(带调查和问题)时,问题不会保存. 我的模型(调查,有很多问题): class Survey include Mongoid::Document field :name has_many :questions,:dependent = :destroy accepts_
所以我有一个简单的应用程序,如 RailsCast about nested forms.,问题是,当我提交表格(带调查和问题)时,问题不会保存.

我的模型(调查,有很多问题):

class Survey
  include Mongoid::Document
  field :name
  has_many :questions,:dependent => :destroy
  accepts_nested_attributes_for :questions,:allow_destroy => true
end

class Question
  include Mongoid::Document
  field :content
  belongs_to :survey
end

和调查控制员:

def new
    @survey = Survey.new
    3.times {@survey.questions.build}
....

和一个观点:

<%= form_for(@survey) do |f| %>
    <%= f.fields_for :questions do |builder| %>
    <%= builder.label :content,"Question" %><br />
    <%= builder.text_area :content,:rows => 3 %><br />
    <%= builder.check_box :_destroy %>
    <%= builder.label :_destroy,"Remove Question" %>
    <% end %>
...

在我的日志中,我有:

Started POST "/surveys" for 127.0.0.1 at 2011-05-24 13:26:51 +0400
  Processing by SurveysController#create as HTML
  Parameters: {"utf8"=>"G£?","authenticity_token"=>"tX0FfMiLbh1BwjuY4CuvAKt2UpTraY3vmdo58ocBnos=","survey"=>{"name"=>"
Rails","questions_attributes"=>{"0"=>{"content"=>"Are you fond of Rails?","_destroy"=>"0"},"1"=>{"content"=>"Rails is
 the best,ha?","2"=>{"content"=>"How many railscasts have you watched?","_destroy"=>"0"}}},"commit
"=>"Create Survey"}
MONGODB nested_attributes_development['surveys'].insert([{"name"=>"Rails","_id"=>BSON::ObjectId('4ddb79dba5372914380000
69')}])
Redirected to http://localhost:3000/surveys/4ddb79dba537291438000069

解决方法

答案是在谷歌小组中找到的,所以我只是复制它:

MONGODB 
nested_attributes_development['surveys'].insert([{"name"=>"Rails","_id"=>BSON::ObjectId('4ddb79dba5372914380000 
69')}])

这不会保存到未完成的问题集合
mongoid默认.
只需添加has_many:questions,:dependent => :destroy,:autosave =>
真正
这应该工作.

比照http://mongoid.org/docs/upgrading.html了解更多详情.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读