2011-05-24 67 views
1

我有以下型號:Rails的3.1.rc1和accept_nested_attributes_for

class Survey < ActiveRecord::Base 
    set_primary_key :survey_id # I'm using external DB 
    belongs_to :user #UPDATED 
    has_many :questions, :dependent => :destroy 
    accept_nested_attributes_for :questions 
end 

class Question < ActiveRecord::Base 
    set_primary_key :question_id # I'm using external DB 
    belogns_to :survey 
end 

如果我去軌控制檯,並保存模型:

>> params = {"title"=>"Survey 1", "questions_attributes"=>{"0"=>{"title"=>"Question 2"}}} 
>> survey = User.first.surveys.build(params) #UPDATED 
>> survey.questions.size 
=> 2 
>> survey = User.first.surveys.new(params) 
>> survey.questions.size 
=> 1 

Rails的是在調查複製問題的資源。也許這是一個Rails 3.1的錯誤?該代碼是類同railscasts插曲197

+0

好的,問題出在'build'函數中,因爲使用'new'效果很好。 – beagleknight 2011-05-25 11:02:19

+0

對不起,我對代碼做了一些更改,因爲原始代碼非常不同。 – beagleknight 2011-05-25 11:04:26

+0

該方法實際上是'accep_nested_attributes_for'。 – 2011-08-23 11:55:43

回答

4

它被固定在this commit.

解決方法是目前的Rails 3.1.0rc2,因此,如果你在你的Gemfile更新你的Rails版本:

gem 'rails', '3.1.0.rc2' 

而且運行

$ bundle update rails 

它應該按預期工作。

+0

您是對的。謝謝! – beagleknight 2011-06-14 09:47:28

+0

謝謝,這讓我難住了一段時間。 – Gazler 2011-06-16 18:47:57