0

Ruby on Rails /JqueryMobileを使用してWebアプリケーションを開発しています。

SQLiteの「インベントリ」スキーマは、existingfixture:string、replacementfixture:string、およびquantity:integerで構成されています。oldlightsとnewlightsと呼ばれる他の2つのテーブルがあります。これらには、それぞれ既存のフィクスチャと置換フィクスチャのオプションが含まれているだけです。Oldlightsとnewlightsはどちらもlightname:stringとvalue:integerを持っています。ここで、valueは、指定されたライト名が使用するワット数です。

これがどのように見えるかのスクリーンショットです

また、既存の器具と交換用器具のワット数の差をプログラムに表示したいと思います。年間何ワットが節約されるかを示す別の列を作成できるようにしたいのですが、これについてどうすればよいかわかりません。値はoldlights/newlightsに関連付けられています。しかし、それらにアクセスして、別の列でそれらを使用して数式を実行する方法を理解することはできません。

データベースの値を表示するためのコード:

<fieldset class="ui-grid-c"><center>
         <div class="ui-block-a"><%= inventory.existing %></div>
         <div class="ui-block-b"><%= inventory.replacement %></div>
         <div class="ui-block-c"><%= inventory.quantity %></div>
         <div class="ui-block-d"><%= link_to 'Remove', [inventory.client, inventory], 
               :confirm => 'Are you sure?',
               :method => :delete %></div></center>
</fieldset>

在庫を追加するためのコード

    <%= form_for([@client, @client.inventories.build]) do |f| %>
       <fieldset class="ui-grid-c">
         <div class="ui-block-a"><%= f.select :existing, Olight.all.collect{|p| [p.name]}, { :include_blank => true } %></div>
         <div class="ui-block-b"><%= f.select :replacement, Nlight.all.collect{|p| [p.name]}, { :include_blank => true } %></div>
         <div class="ui-block-c"><%= f.number_field :quantity, "data-mini" => "true" %></div>
         <div class="ui-block-d"></div>
       </fieldset>
       <%= f.submit 'Add Inventory'%>
     <% end %>
4

2 に答える 2

1

Sebastienは部分的に正しいです。(「1-4 '40W-T12-ESMB」の命名では、40はフィクスチャのワット数ではなく、単一の4フィートT-12ランプのワット数であり、フィクスチャ名の解析は機能しません。エンジニアリングは、「3-4'40W-T12-ESMB」フィクスチャのワット数==「1-4'40W-T12-ESMB」フィクスチャのワット数の3倍ほど単純ではありません。フィクスチャの合計ワット数は、ランプのワット数に加えて、他の多くの要因。)

あなたはこのページを読むべきです!ドロップリストの設定方法の詳細については、「セクション3-選択ボックスを簡単に作成する」-options_for_Selectを使用して作成するのが好きです。名前が表示されるフォームが必要だと思いますが、新旧の器具のIDがデータベースに保存されているものです。

Railsコントローラーでは、在庫の組み合わせ(既存、交換、およびカウント)を保存するときに、新旧のフィクスチャーIDを使用してワット数を調べ、計算を行ってから、節約値を保存します。ページが表示されるとき、すべてのデータが存在している必要があります。

スタイルノートでは、Olight / Nlight.all.collectコードをページテンプレートからコントローラーに移動し、ビューで使用されるインスタンス変数を設定します...

@existing = Olight.all.collect{|old| [old.name, old.id]}
@replacement = Nlight.all.collect(|new| [new.name, new.id]}
于 2012-06-01T12:16:26.203 に答える
1

私はあなたが多くのことをしなければならないことに感謝します:

  • まず、新しいものと前のものからワットを取得する必要があります。そのために、2つのソリューション:

    名前からワットを抽出する正規表現を作成するか、ユーザーがワットを指定できるライトにフィールドを追加します。

  • 次に、[インベントリの追加] をクリックして、「newWatts」および「oldWatts」などの追加パラメーターを使用して ajax 呼び出しをサーバーに送信します。サーバー側でアクションを作成すると、節約されたエネルギーが計算され、データベースに保存されます。

わかりますか?

于 2012-06-01T09:47:06.267 に答える