0

次のアクション/オブジェクトで動作する form_for があります。

   def new
     @student = Students.new
   end

また、フォームは以下のパスから呼び出されます

   schools/4/students/new

学校の ID (この場合は 4) をデータベースの新しい学生レコードに保存する最良の方法は何ですか? 次のリクエストで失われるため、 @student オブジェクトを事前にロードすることはできません。フォームで hidden_​​field を使用しましたが、レールにはもっと良い方法があるはずです。ありがとうございました。

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 に答える