0

私は次のイマーを持っています。これが基本的に表すのはロータです。私がやろうとしているのは、Ruby On Rails を使用して構築しているシステムにこれを実装することです。ただし、最初に行うべきことは、月の日付を縦に並べることです。私は少し混乱しています。水平方向のヘッダーは、さまざまな病院を表しています。日と病院に対しては、誰がどの病院で働いているかを示す名前です。色分けは現在関係ありません。

横見出しは病院です。これらは 10 病院の固定値です。私が難しいと感じているのは、私のイメージでは現在の日を16日として使用し、5月12日までの現在の日を生成することです。

私はいくつかの疑似コードを考え出そうとしましたが、これで正しい方向に向かっているかどうかはよくわかりません

(Date.today..23.days.from_now).each do |d|; td= d.to_s(:short);

ループの内側に入れると、日付と一緒にセルが自動的に生成されるのではないかと思っていましたが

私がやろうとしていることを達成するための可能な解決策はありますか?

私のモデルは次のとおりです。

  • デパートメント
  • 病院_予約
  • 病院
  • role_user
  • 役割
  • rota_day
  • ユーザー

頭に浮かんだもう1つのことは、病院の固定値が10であることを知っているためです。次のようにできるのではないかと考えていました。

<table class="rota">
        <thead>
            <th> Dates </th>
                     <th> Hospital </th>
            <% end %>
        </thead>
        <% @Hospital.each do |Hospital| %>
            <tr class="rota_days" id="rota_days<%= hospital_id %>">

このようにして、病院をループしてヘッダーを生成できますが、日付の生成にはまだ行き詰っています

4

2 に答える 2

2

あなたは正しい方向に進んでいると思いますが、どこに問題があるかについて 100% 確信があるわけではありません。

これを解決するために、リストしたい病院とリストしたい日に対応するビュー@hospitalsを渡します。@daysこれget_hospital_booking_for_dayは、担当者の名前を返すかnbsp;、空白のセルが正しく表示されるようにするビュー ヘルパーです。

繰り返しますが、これが 100% 正しいかどうかはわかりませんが、うまくいけば、正しい軌道に乗ることができます。

<table class="rota">
    <thead>
    <% @hospitals.each do |hosp| %>
        <th><%= hosp.name %></th>
    <% end %>
    </thead>
    <tbody>
    <% @days.each do |day| %>
        <tr>
            <td><%= day.to_s(:short) %></td>
            <% @hospitals.each do |hosp| %>
                <td><%= get_hospital_booking_for_day(hosp, day) %></td>
            <% end %>
        </tr>
    <% end %>
    </tbody>
</table>
于 2012-10-24T01:50:12.953 に答える
0

月を縦にリストするのは、ビューによって作成された錯覚です。それを行う最も簡単な方法は、次のようなデータフィールドを持つことです

月、1、3、ジョン

それをjsonオブジェクトの中に入れます。(:JSで他の方法を手に入れましたか?先に進んでください-フォーマットの問題はとにかく直後に議論されます)。配列を使用します。

var outputs = [];
for (i = 0; i < amountOfOutputs; i++) {
     outputs[i] = { month: "",
                    datafield1: "",
                    datafield2: "",
                    datafield3: "" }
}

そして、オブジェクトをテーブルに追加します(テーブルを使用する必要がある場合...)。そして、あなたの質問に対する答えがここに公開されています。

for (i = 0; i < outputs.length; i++ ) {
    var $row =     $('<tr class="'+i+'">').
    var $month =   $('<td>').text(outputs[i].month);
    var $df1 =     $('<td>').text(outputs[i].datafield1);
    var $df2 =     $('<td>').text(outputs[i].datafield2);
    var $df3 =     $('<td>').text(outputs[i].datafield3);
    $row.appendTo('table');
    $month.appendTo('tr.'+i+'');
    $df1.appendTo('tr.'+i+'');
    $df2.appendTo('tr.'+i+'');
    $df3.appendTo('tr.'+i+'');
}

また、月が垂直に表示されたテーブルを用意する必要があります。

これがお役に立てば幸いです。解決に近づいていない場合はお知らせください。もう一度試します。100% 完全な解決策ではありませんが、フォーマットの正しい軌道に乗っているはずです。

于 2012-10-24T02:31:14.867 に答える