[英]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.