2016-11-08 7 views
0

私はRailsを初めて使っています。簡単に聞こえるが、うまくいかないものには苦労しています。私は学生と出席者の2つのモデルを持っています。すべての生徒のための出席者ビュー/フォームを作成する

学生モデル:

name lastname classroom_id 

出席モデル:

present:boolean absent:boolean halfday:boolean attnd_date:date student_id 

学生has_many :attendancesと出席belongs_to :student

私は個々の学生のためのエントリーを作成して出席することができますが、私はすべての生徒を表示する(またはすべての生徒に特定の教室を表示する)ビューを作成したいと思います。 3つのチェックボックスを使って、誰が存在しているのか、存在しないのかを1つずつ確認し、フォームを送信することができます。

ここのお手伝いが大変ありがとうございます。レール4とルビー2.2.0

おかげ

+1

ようこそスタックオーバーフロー!今まで試したこととその結果を含めるためにあなたの質問を明確にすることができますか? – RJHunter

答えて

0

使用するあなたは、あなたが出席をマークする対象の教室がありますeditアクションを行うことができます。

class AttendancesController < ApplicationController 
    def edit 
    @classroom = Classroom.find(<classroom-id>) 
    end 

    def update 
    end 
end 

この方法edit.html.erb

<%= form_for(@classroom, url: '/attendances/:id', method: :put) do |f| %> 
    <table> 
    <%- @classroom.students.each do |student| %> 
     <tr> 
     <td><%= student.name %></td> 
     <td><%= checkbox_tag "attendances[#{student.id}][present]" %></td> 
     <td><%= checkbox_tag "attendances[#{student.id}][absent]" %></td> 
     <td><%= checkbox_tag "attendances[#{student.id}][halfday]" %></td> 
     </tr> 
    <% end %> 
    </table> 

    <%= f.submit %> 
<% end %> 

あなたのビューでフォームを送信するとき、あなたはあなたのupdateアクションでこれらのparamsを受け取ることになります:

`{ attendances: { '1' => { present: false, absent: true, halfday: false }, '2' => { present: true, absent: false, halfday: false }, ... } }`. 

次にあなたがロジックを記述することができますこれらの詳細をデータベースに保存するアクション。

注:これは擬似コードの一種です。異なるHTMLタグの構文とオプションを確認してください。

+0

ありがとう、私は今、プロセスを簡素化し、すべての生徒のリストを取得し、それらのための出席を作成するだけで怖い。出席ボタンをクリックすると出席が1つだけ作成され、student_idもパラメータも渡されません。 – Waqas

+0

ビューとコントローラコードのいくつかを表示できますか?関連するもののみ。 –

+0

私はちょうど簡単な足場コード – Waqas

0

私を立ち上げて稼働させるための@Jagdeep Singhに感謝します。私は今、プロセスをよりシンプルにして、私が頭を抱くことができるようにしました。私はすべての生徒のリストを取得し、出席者を作成したいだけです。

マイビュー:

<% @students = Student.all %> 

<%= form_for(:attendances, url: '/admin/attendances/') do |f| %> 
    <table> 
    <%= @today %> 
    <th>Name</th><th>Present</th><th>Absent</th><th>halfday</th> 
    <%- @students.each do |student| %> 
     <tr> 
     <td><%= student.first_name %></td> 
     <td><%= check_box_tag "attendances[#{student.id}][present]" %></td> 
     <td><%= check_box_tag "attendances[#{student.id}][absent]" %></td> 
     <td><%= check_box_tag "attendances[#{student.id}][halfday]" %></td> 
     </tr> 
    <% end %> 
    </table> 

    <%= f.submit %> 
<% end %> 

私は上をクリックし、それはただ一つだけ、すべてのデフォルトのparamsとしてレコードを作成し、出席ボタンを作成

私はまだ学んでいますが、私は一人で行っている10人の生徒全員の出席をどのように作成できるかについて頭を悩ましています。

関連する問題