【发布时间】:2010-01-04 14:38:43
【问题描述】:
我有一个名为“order”的表,其中有许多“order_items”,每个“order_items”都是“order”和“product”的belongs_to。在数据库中,我有一条记录。记录是这样的:
订单表: 编号 = 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 %>
这是我的订单.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 的错误:
为 nil 调用 id,这将 错误地是 4——如果你真的 想要 nil 的 id,使用 object_id
【问题讨论】:
-
您检查过您的路线吗? params[:id] 就是 nil。
-
我的其他对象工作正常。只有“订单”不能
标签: ruby-on-rails ruby