0

私はこれらのタイプの問題をいくつか調べてきましたが、よくわかりません.Ruby on Railsは初めてです。プリンターを管理するアプリケーションをレールで作成しています。基本的に私がここでやろうとしているのは、javascriptで書かれたフロントエンドからレールで書いているバックエンドにajaxを使ってjsonオブジェクトをPOSTすることです。基本的に、ユーザーが何かをチェックアウトして印刷することを決定すると、json オブジェクトがサーバーに送信され、json オブジェクトのデータを使用して新しい rails オブジェクトが作成されます。json オブジェクトからのデータを含む rails オブジェクトを作成したいと考えています。

フロントエンドのJavaScriptにある私のajax。このコードは完全に別のアプリケーションにあることに注意してください。

     $.ajax({
                beforeSend: function(xhr) {
                    toggleModal();
                    xhr.setRequestHeader("Authorization", "OAuth "+auth_header);
                },
                url:message.action,
                async:true,
                type:message.method,
                dataType:'json',
                contentType: 'application/json',
                data: JSON.stringify(userSession),
                error: function(data){
                    toggleModal();
                    $.mobile.changePage($("#page_thankyou"),{ transition: "slide"});
                },
                success: function(data){
                    toggleModal();
                    console.log(userSession);
                    $.mobile.changePage($("#page_thankyou"),{ transition: "slide"});
                }
            })  


Here is the userSession Object:



userSession = {
                "kiosk_session":{
                    "session_id":"",
                    "is_order":"",
                    "session_items":[]
                }
            };

    In my Kiosk_session controller:

              # POST /kiosk_sessions.json
      def create
        puts YAML::dump params
        @kiosk_session = KioskSession.new(params[:kiosk_session])
        respond_to do |format|
          if @kiosk_session.save
            format.html { redirect_to @kiosk_session, notice: 'Kiosk session was successfully created.' }
            format.json { render json: @kiosk_session, status: :created, location: @kiosk_session }
          else
            format.html { render action: "new" }
            format.json { render json: @kiosk_session.errors, status: :unprocessable_entity }
          end
        end
      end

と私の kiosk_session モデル:

  class KioskSession < ActiveRecord::Base

  attr_accessible :id, :is_order, :is_reprint, :reprint_reason, :price,
      :paid, :printed, :print_date, :session_items_attributes, :kiosk_id

  has_many :session_items
  has_one :kiosk_kiosk_session
  belongs_to :user
  belongs_to :kiosk

  accepts_nested_attributes_for :session_items

  before_save :before_save_callback

  def before_save_callback
    new_KSS = KioskKioskSession.new(:kiosk_id => self.kiosk_id, :kiosk_session_id => self.id)
    new_KSS.save
    self.total_price
  end

  def total_price
    #session_items.to_a.sum {|item| session_items.total_price}
    #array to hold subtotals
    price = 0.00
    #finds each item in session
    session_items = SessionItem.where(:kiosk_session_id => self.id)
    #creates array of subtotals
    session_items.each do |t|
        #if t.price
      t.set_price
        price += t.price
    end
    self.price = price
  end

end

ああ、キオスク セッションを作成するための私の POST ルートは /kiosk_session#create です

このコードがごちゃごちゃしていることは承知していますが、どんな助けでも大歓迎です。

4

0 に答える 0