簡體   English   中英

為什么我不能在RoR中回送來自db的信息?

[英]Why I can't loop back the information from db in RoR?

我有一個名為“ order”的表,其中有許多“ order_items”,每個“ order_items”都屬於“ order”和“ product”。 在數據庫中,我按順序有一條記錄。 記錄是這樣的:

訂單表:id = 1名稱=客戶

並且order_items表是這樣的:id = 1 product_id = 233 order_id = 1

id = 2 product_id = 454 order_id = 1

我正在嘗試使用此代碼顯示順序,但未成功:

<% semantic_form_for @order do |f| %>  
  <% f.inputs do %>  
    <%= f.input :name %>  

  <% end %>  
  <%= f.buttons %>  
<% end %>

這是我的order.rb:

class Order < ActiveRecord::Base
  has_many :order_items



end

最后但並非最不重要的是,這是order.rb的控制器:

class OrderController < ApplicationController
  # GET /orders
  # GET /orders.xml
  def index
    @orders = order.all

    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @orders }
    end
  end

  # GET /orders/1
  # GET /orders/1.xml
  def show
    @order = order.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @order }
    end
  end

  # GET /orders/new
  # GET /orders/new.xml
  def new
    @order = order.new

    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @order }
    end
  end

  # GET /orders/1/edit
  def edit
    @order = order.find(params[:id])
  end

  # POST /orders
  # POST /orders.xml
  def create
    @order = order.new(params[:order])

    respond_to do |format|
      if @order.save
        flash[:notice] = 'order was successfully created.'
        format.html { redirect_to(@order) }
        format.xml  { render :xml => @order, :status => :created, :location => @order }
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @order.errors, :status => :unprocessable_entity }
      end
    end
  end

  # PUT /orders/1
  # PUT /orders/1.xml
  def update
    @order = order.find(params[:id])

    respond_to do |format|
      if @order.update_attributes(params[:order])
        flash[:notice] = 'order was successfully updated.'
        format.html { redirect_to(@order) }
        format.xml  { head :ok }
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @order.errors, :status => :unprocessable_entity }
      end
    end
  end

  # DELETE /orders/1
  # DELETE /orders/1.xml
  def destroy
    @order = order.find(params[:id])
    @order.destroy

    respond_to do |format|
      format.html { redirect_to(orders_url) }
      format.xml  { head :ok }
    end
  end
end

這是來自RoR的錯誤:

稱為id的nil,錯誤地為4-如果您確實想要nil的id,請使用object_id

紅寶石類必須大寫:

Order # class
order # variable or method

這應該工作:

class OrderController < ApplicationController
  def show
    @order = Order.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @order }
    end
  end
  # ...
end

在您的show.html.erb中:

#...
<%= @order.name =>
#...

網址:

/orders/:id

如果需要,我們可以說一個標准的編輯表單:

# edit.html.erb

<% form_for @order do |f| %>  
  <%= f.input :name %>   
  # fields
  <%= f.submit "Place order" %>  
<% end %>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM