繁体   English   中英

填充Rails表单字段

[英]Populate Rails form fields

这很难解释,但这里有。 我有一个Rails应用程序,包括学生,课程,作业和成绩

在学生表演视图中,列出了学生所学的所有课程,以及与这些课程相关的作业。 所有在学生和作业之间有记录成绩的作业也会说明成绩,所有其他作业都显示“N / A”。 我想要做的是根据所点击的链接,预先填充学生和作业字段的表格链接。

这是一个例子。 彼得帕克有一个“数学考试”的成绩,但不是'数学CW'。 如果用户点击“添加”链接,我希望显示一个视图,其中包含预先填充了学生姓名和作业名称的表单,以便为要添加的成绩做好准备。

替代文字http://img695.imageshack.us/img695/7540/screenshot20100512at180.png

我基本上不知道如何最好地将这些数据传递给表单,或者如何使表单以不可编辑的方式显示数据。

谢谢。

杰克你有几个问题,其中一个相对容易以不可编辑的方式显示数据,你可以禁用它

http://www.w3.org/TR/html401/interact/forms.html#h-17.12

如何将student_id和assignment_id传递给表单? 系统只会在本地使用,但我会尽力验证一切。 - 杰克

杰克,你需要在当前视图中可以传递student_id和assignment_id的东西。 像一个link_to。

<%= link_to "show me my assignments", {:action => 'show', :controller => "assignments"}, :student_id => student.id, :assignment_id => student.assignment[0].id %>

(注意使用宁静路线可能更好,但这表明发生了什么)

这个链接将要做的是调用赋值控制器的show动作。 您可以通过调用以下方式获取控制器中的id:

assignment_id = params[:assignment_id]
student_id = params[:student_id]
@student = Student.find(:first, :conditions {:id => student_id})
...

然后在/ app / views / assignments /目录下的show.html.erb中,您需要呈现表单代码,例如:

<%= form_for @student, :student ...

我掩饰了许多可能性,你问的问题有点宽泛。 将其分解为更小的块(更少关注应用程序而更多地关注单个操作)并重新询问论坛成员可能更有帮助。

你可以问更多:

  • 从链接向控制器发送数据
  • 从控制器中查找数据库中的项目
  • 从控制器中的实例变量生成表单
  • 最后在表单中禁用text_field

我会说给出我建议的一个镜头(从视图发送数据到控制器,然后使用控制器中的数据渲染另一个视图),如果你无法弄清楚某些东西,试着问一个非常集中的问题关于你遇到的问题,你最终可能会比所有产品都好得多。

我只是链接到表单并传递student_id和assignment_id。 您无法真正使表单字段“不可编辑”,但您可以在显示和保存信息之前验证该用户是否有权查看/编辑。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM