[英]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 ...
我掩饰了许多可能性,你问的问题有点宽泛。 将其分解为更小的块(更少关注应用程序而更多地关注单个操作)并重新询问论坛成员可能更有帮助。
你可以问更多:
我会说给出我建议的一个镜头(从视图发送数据到控制器,然后使用控制器中的数据渲染另一个视图),如果你无法弄清楚某些东西,试着问一个非常集中的问题关于你遇到的问题,你最终可能会比所有产品都好得多。
我只是链接到表单并传递student_id和assignment_id。 您无法真正使表单字段“不可编辑”,但您可以在显示和保存信息之前验证该用户是否有权查看/编辑。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.