gpt4 book ai didi

ruby-on-rails-3 - 带有 mongoid 的 Rails 3 中的嵌套属性问题(不保存嵌套对象)

转载 作者:行者123 更新时间:2023-12-04 07:18:30 25 4
gpt4 key购买 nike

所以我有一个简单的应用程序,如 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

和调查 Controller :

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

和一个 View :

<%= 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?", "_destroy"=>"0"}, "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了解更多详情。

关于ruby-on-rails-3 - 带有 mongoid 的 Rails 3 中的嵌套属性问题(不保存嵌套对象),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6108394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com