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

时间:2015-01-04 23:10:15

标签: ruby-on-rails ruby forms

我有三个控制器:用户,课程和SavedCourses以及相应的模型:用户,课程和保存课程 数据“流”是:

  1. 课程由赞助商添加到课程表中;每门课程都有     14个领域。
  2. 学生通过提交表格来申请课程     4个字段 - 课程日期,课程ID,赞助商名称和他/她的ID。     输入表单位于Views / Users文件夹中并指向     课程表:form_for(@course)。请求已保存并添加到     课程控制员的课程表。
  3. 不完整的记录与完整的课程匹配,并解析'匹配' 每个领域的信息。这发生在Courses控制器中。
  4. 将信息传递给a中的部分(确认表格) “视图/用户”文件夹中的页面用于确认并“保存”为 记录在saved_courses表中。
  5. 在点“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控制台 我尝试在SavedCourses控制器中放置“Def new”代码,但它没有工作 这些值应传递给部分(确认表单),该部分是Views / Users文件夹中页面的一部分:

      <%= 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控制台没有报告错误 提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

在挖掘了一些问题并重新措辞之后,我发现了嵌套。这是前一个Stackoverflow答案的链接创建嵌套模型:Creating nested models - Rails 3.1另外,看看Ryan Bates Railscasts#196和#197,嵌套模型表:http://railscasts.com/episodes/196-nested-model-form-part-1? (该链接适用于第一个,#196。)