0

我是 Ruby on Rails 和 Javascript 的新手。在我的控制器的新功能中如下:

def new
   @student = Student.new

   respond_to do |format|
      format.html # which is by default new.html.haml
      format.json  { render :json=> @student }
end

在我的 new.html.haml 中,我只想添加一个仅包含学生卷号的表单,如果该学生已经存在,则单击提交按钮将带我进入另一个表单,其中的字段将已填充现有学生的信息,如果我愿意,我可以编辑它们,否则将出现相同的表格,我必须输入新学生的所有信息。

这里我的问题是,我无法决定如何操作在haml表单中单击提交按钮,这是基于学生的存在。我正在考虑在这里使用 javascript,但是我必须在 javascript 中调用包含与学生相关的所有其他字段的 haml,我不知道这是否可能。我还没有找到任何关于在 javascript 中调用 haml 的文档。

我不知道如何进行。请帮忙。

编辑:在这里我忘了提一件事,后一种形式的提交应该根据学生的存在将我重定向到students_controller 的create 函数和update 函数。有可能吗?

4

1 回答 1

0

回答您的问题有点困难,但无论如何我都会尝试回答。:-)

New 通常用于创建新实例。也许您应该将其命名为 find 或类似的名称。比在控制器中查找执行以下操作:

def find
  student = Student.find_by_roll_number params[:roll_number]
  if student
    redirect_to edit_student_path(student)
  else
    redirect_to new_student_path
  end
end

除非您不希望服务器往返,否则不需要 javascript。

于 2013-09-09T15:09:16.200 回答