0

如何爲2個腳手架模型創建嵌套表單?Rails:2個腳手架模型的嵌套形式?

我有一個教學大綱模型,它有許多任務。以前,創建任務的唯一方法是通過Syllabus嵌套表單(我使用Railscasts)。昨天,我決定用戶應該能夠自己創建任務,因此我跳過了遷移腳手架的任務,所以它創建了現有任務模型的所有控制器和視圖。

所以這裏的問題:我現在可以自己創建任務,但是當我試圖通過課程嵌套表格創建任務,它給了我一個錯誤「未定義的方法`困難」爲#< \使命: 0xb372ffc。>「我猜它試圖將Syllabus屬性傳遞給任務屬性,這個屬性在任務模式中沒有定義。 (難度是僅限於教學大綱的屬性)。總結:當我只有任務模型的時候,嵌套表單與「構建器」一起工作,但是當我爲任務搭建腳手架時,我無法使用嵌套表單。

因爲有多個文件可能會影響這個,所以我創建了一個要點。 https://gist.github.com/2631734

順便說一句,這些都是應該在

{"utf8"=>"✓", 
"authenticity_token"=>"YxkzNmIJl0jBA467tdHP2zqNv22DgKrzSx+WCFgwKtk=", 
"syllabus"=> 
    {"category"=>"Technology and Internet", 
    "difficulty"=>"Beginner", 
    "title"=>"missions testing", 
    "description"=>"deccrip", 
    "missions_attributes"=> 
     {"0"=> 
      {"_destroy"=>"false", 
      "title"=>"plz", 
      "content"=>"<p>\r\n\tdad</p>\r\n" 
      } 
     } 
    }, 
    "commit"=>"Create Syllabus" 
} 
+0

這些是你現在擁有的參數嗎?或者你想要的那些? –

+0

@BenjaminUdinktenCate - 這些是在我的錯誤頁面上顯示的參數。我認爲他們是我想在我的數據庫中傳遞的,但是沒有被處理 – kibaekr

回答

0

我想通了,但它真的很混亂......我確信有更好的方法來做到這一點,但經過幾天的努力後,我對此解決方案感到滿意:

@syllabus = Syllabus.new(:title => params[:syllabus][:title], :category => params[:syllabus][:category], :difficulty => params[:syllabus][:difficulty], :description => params[:syllabus][:description], :author_id => current_user) 

    @syllabus.save! 

    params[:syllabus][:missions_attributes].each do |a, b| 

    @mission = Mission.new(:title => b[:title], :content => b[:content], :syllabus_id => @syllabus.id, :author_id => current_user, :category => @syllabus.category) 

    @mission.save! 

    end 
0

我最好的猜測可以通過params是一個creations

current_user.creations.build(params[:syllabus]) 

指的是一組任務而不是教學大綱。如果沒有完整的錯誤和用戶模型,它很難確定。