0

シンプルな在庫システムを構築しようとしています。フォームを介してユーザーからデータを収集しています これが私のフォームコントローラーです:

class FormsController < ApplicationController
  before_action :set_form, only: [:show, :edit, :update, :destroy]
  #belongs_to :powders

  # GET /forms
  # GET /forms.json
  def index
    @forms = Form.all
  end

  # GET /forms/1
  # GET /forms/1.json
  def show
  end

  # GET /forms/new
  def new
    @form = Form.new
  end

  # GET /forms/1/edit
  def edit
  end

  # POST /forms
  # POST /forms.json
  def create
    @form = Form.new(form_params)

    respond_to do |format|
      if @form.save
        format.html { redirect_to @form, notice: 'Form was successfully created.' }
        format.json { render :show, status: :created, location: @form }
      else
        format.html { render :new }
        format.json { render json: @form.errors, status: :unprocessable_entity }
      end
    end
  end

  # PATCH/PUT /forms/1
  # PATCH/PUT /forms/1.json
  def update
    respond_to do |format|
      if @form.update(form_params)
        format.html { redirect_to @form, notice: 'Form was successfully updated.' }
        format.json { render :show, status: :ok, location: @form }
      else
        format.html { render :edit }
        format.json { render json: @form.errors, status: :unprocessable_entity }
      end
    end
  end

  # DELETE /forms/1
  # DELETE /forms/1.json
  def destroy
    @form.destroy
    respond_to do |format|
      format.html { redirect_to forms_url, notice: 'Form was successfully destroyed.' }
      format.json { head :no_content }
    end
  end

  private
    # Use callbacks to share common setup or constraints between actions.
    def set_form
       @form = Form.find(params[:id])
    end

    # Never trust parameters from the scary internet, only allow the white list through.
    def form_params
      params.require(:form).permit(:date, :shift, :batch, :silicate, :fw)
    end
end

レポートには、フォームを通じて収集されたデータが表示されます。

 Date   Shift   Batch   Silicate        Fw  
2015-01-19  day     1       4000        450         
2015-01-19  Night   2       7000        600 
2015-01-21  day     8       4500        340

ここで、別のレポートが必要です。たとえば、FW インベントリ レポートとします。このレポートのテーブル構造は次のようになります。

Date, Opening Stock, Receipts, Consumptions and Closing Stock

ここでは、フォーム レポートから日付と消費の詳細を取得する必要がある FW インベントリ レポートです。シフトごとの消費量ではなく、日付ごとの合計値を取得する必要があります。

ここで、次のような Firewood コントローラー (App/Controllers/firewoods_controller.rb) を作成しました。

class FirewoodsController < ApplicationController
  before_action :set_firewood, only: [:show, :edit, :update, :destroy]
 # has_many :forms
 # belongs_to :forms


  # GET /firewood
  # GET /firewood.json
  def index
  #  @Firewoods = Firewood.all ( I want to show the inventory reports for Firewood  )
  end

  # GET /firewoods/1
  # GET /firewoods/1.json
  def show

  end

  # GET /firewdoods/new
  #def new
   # @firewdood = Firewdood.new
 # end

  # GET /firewdoods/1/edit
 # def edit
#  end

  # POST /firewdoods
  # POST /firewdoods.json



  # PATCH/PUT /firewdoods/1
  # PATCH/PUT /firewdoods/1.json
  def update
    respond_to do |format|
      if @firewdood.update(firewdood_params)
        format.html { redirect_to @firewdood, notice: 'Firewdood was successfully updated.' }
        format.json { render :show, status: :ok, location: @firewdood }
      else
        format.html { render :edit }
        format.json { render json: @firewdood.errors, status: :unprocessable_entity }
      end
    end
  end

  # DELETE /firewdoods/1
  # DELETE /firewdoods/1.json
  def destroy
    @firewdood.destroy
    respond_to do |format|
      format.html { redirect_to firewdoods_url, notice: 'Firewdood was successfully destroyed.' }
      format.json { head :no_content }
    end
  end

  private
    # Use callbacks to share common setup or constraints between actions.
    def set_firewdood
      @firewdood = Firewdood.find(params[:id])
    end

    # Never trust parameters from the scary internet, only allow the white list through.
    def firewdood_params
      params.require(:firewdood).permit(:date, :opening, :stock, :receipt, :issues, :closing, :stock)
    end
end

そして、ここにモミの木のインデックス ページがあります (App/views/firewoods/index.html.erb ここで、在庫レポートが必要です:

<table>
  <thead>
    <tr>
      <th>Date</th>
      <th>Opening</th>
      <th>Stock</th>
      <th>Receipt</th>
      <th>Issues</th>
      <th>Closing</th>
      <th>Stock</th>
      <th colspan="3"></th>
    </tr>
  </thead>

  <div class ="report" </div>
      <table>


      <tr>
        <td><%= form.date %></td>
        <td><%= form.fw %></td>

        <td><%= link_to 'Show', form %></td>
        <td><%= link_to 'Edit', edit_form_path(firewdood) %></td>
        <td><%= link_to 'Destroy', form, method: :delete, data: { confirm: 'Are you sure?' } %></td>
      </tr>
    <% end %>
  </tbody>
</table>

および (app/models/firewoods.rb) のモデル:

class Firewood < ActiveRecord::Base
end

ここで、次のフォーマットに従ってデータを表示したいと思います: App/views/firewoods/index.html.erb (localhost:3000/firewoods/) を介して出力が表示されるはずです。領収書の数字は今のところ無視しましょう。FormsController/テーブルから消費量の数値を取得する必要があり、最終在庫の方程式は op.stock + レシート - 消費 である必要があります。

Date, Opening Stock, Receipts, Consumptions and Closing Stock

前もって感謝します。

4

0 に答える 0