0

我有一个对以下动作/对象进行操作的 form_for:

   def new
     @student = Students.new
   end

另外,表单是从以下路径调用的

   schools/4/students/new

将学校的 id(在这种情况下为 4)保存到数据库中的新学生记录的最佳方法是什么?我无法用它预加载他的@student 对象,因为它在下一次请求时丢失了。我在表单中使用了hidden_​​field,但是rails中一定有更好的方法。谢谢你。

4

1 回答 1

1

students控制器:

def new
  @school = School.find(params[:school_id])
  @student = @school.students.build
end

def create
  @school = School.find(params[:school_id])
  @student = @school.students.build(params[:student])
  if @student.save
    ...
  else
    ...
  end
end

形式:

<%= form_for([@school, @student]) do |f| %>
...
<% end %>
于 2012-06-24T19:24:44.663 回答