【问题标题】:Load data from one model into a form, and save to another model, using rails使用 rails 将数据从一个模型加载到表单中,并保存到另一个模型
【发布时间】:2015-01-04 23:10:14
【问题描述】:

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

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

在点“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 和赞助商名称上匹配

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

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

  @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 控制器中,但它不起作用
这些值应传递给 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 控制台没有报告错误。
提前感谢您的帮助。

【问题讨论】:

    标签: ruby-on-rails ruby forms


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-16
      • 1970-01-01
      • 1970-01-01
      • 2015-07-02
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多