我正在通过Rails进行敏捷Web开发,并遇到任务E问题并将支付类型添加到数据库。在订单表中,存在将列payment_type_id与payment_types数据库(其保存列标识,标签和值)相关的外键RoR外键视图和零对象
因此,订单具有的payment_type_id为1,其对应于payment_types中的条目“信用卡”, “CC”
class Order < ActiveRecord::Base
has_many :line_items
belongs_to :payment_types
class PaymentType < ActiveRecord::Base
has_one :order
那么要想控制器内
class OrdersController < ApplicationController
# GET /orders
# GET /orders.xml
def index
@orders = Order.all
然后在index.html.erb视图:
<% @orders.each do |order| %>
<tr>
<td><%=h order.name %></td>
<td><%=h order.payment_types.label %></td>
这给出了以下错误:
“你有没有对象,当你没有想到它!而评估nil.label”
为order.payment_types.label
我是否有关系正确行创建订单,一切发生时的 错误?外键的作品在其他地方,它只是在该视图。感谢这么多的帮助
谢谢你。这是从payment_types到payment_type是固定它改变它。它使
validates_presence_of :payment_type
感觉虽然 每个订单都有一个payment_type,并且数据库中没有一个为null或者有一个无效的对应payment_type,所以我认为添加一个零检查只会掩盖真正的问题。 – mfanto 2009-09-08 01:28:56