使用 rails 将数据从一个模型加载到表单中,然后保存到另一个模型

Load data from one model into a form, and save to another model, using rails

我有三个控制器:Users、Courses 和 SavedCourses 以及相应的模型:User、Course 和 SavedCourse 数据"flow"为:

  1. 课程由赞助商添加到课程table;每门课程都有 14 个字段。
  2. 一名学生通过提交表格请求课程 4 个字段 - class 日期、课程 ID、赞助商名称和他/她的 ID。 输入表单位于 Views / Users 文件夹中并指向 课程 table:form_for(@course)。请求被保存并添加到 课程控制器 table 的课程。
  3. 不完整的记录匹配到完整的课程,'match'被解析为 每个字段的信息。这发生在课程控制器中。
  4. 信息被传递到一个部分(确认表)中 Views / Users 文件夹中的页面进行确认,'save' 作为 记录在 saved_courses table.

点“3”和“4”之间有东西坏了。我怀疑我的操作在错误的控制器中和/或我错误地标记了我的字段。我会很感激另一组眼睛。这是代码:

在课程控制器中
获取部分记录信息-学生提交的信息

Def new
  new_record = Course.where ... Some fields are null
  row = new_record.first

  active_date = row.class_date
  active_course = row.course_id
  active_sponsor = row.sponsor_name

在 class_date、course_id 和 sponsor_name

上匹配
  abc = Course.where .... This works (using foregoing variables as inputs)

获取用于确认表单的值
仍在课程控制器和新方法中

  @saved_course = SavedCourse.new
  @saved_course.class_date = abc.class_date ... etc. for the remaining fields
  ... etc. for the remaining fields

到目前为止一切都在 rails 控制台中工作。
我尝试将 "Def new" 代码放在 SavedCourses 控制器中,但没有成功
这些值应传递给视图/用户文件夹中页面的一部分(确认表单):

  <%= form_for(@saved_course) do |f| %>
    <div>
    <li style="list-style-type: none; float: left;">
    <%= f.label :class_date %><br/>
    <%= f.text_area :class_date, :value => @saved_course.class_date, autofocus: true %>
    </li>
    </div>

...后跟更多字段
不幸的是,表单呈现的是空白/空字段,而不是带有@saved_course 信息的字段。顺便说一下,我在有和没有自动对焦的情况下都试过了。我想允许学生进行编辑,所以我将字段保留为带自动对焦的文本区域。

服务器、console.log 或 rails 控制台没有报告任何错误。
预先感谢您的帮助。

在进一步挖掘并重新表述我的问题后,我发现了嵌套。这是对先前 Whosebug 答案创建嵌套模型的 link:Creating nested models - Rails 3.1 Also, look at Ryan Bates Railscasts #196 and #197, Nested Model Form: http://railscasts.com/episodes/196-nested-model-form-part-1? (link 用于第一个,#196。)