我正在尝试执行以下操作:
<%= order.user.try(:first_name) %>
<%= order.user.try(:last_name) %>
<%= order.user.try(:email) %>
但是,当我查看此页面的索引时,这有效,数据不会出现在表中。我还查看了日志,看到正在发布相关数据
carts
0 毫秒)选择.* 从carts
哪里carts
。id
= 8 限制 1
所以我或者尝试做
<%= order.user.first_name %>
<%= order.user.last_name %>
<%= order.user.email %>
这样做导致
NoMethodError in Orders#index
Showing C:/Users/sites/e-smart/app/views/orders/index.html.erb where line #18 raised:
undefined method `first_name' for nil:NilClass
我知道这个错误的结果是因为first_name
是空的。
获取数据的最佳方法是什么。
订单.rb
class Order < ActiveRecord::Base
attr_accessible :address, :card_expires_on, :card_type, :ip_address, :card_number, :first_mame, :last_name, :email, :quantity
belongs_to :cart
has_many :line_items, :dependent => :destroy
belongs_to :user
用户.rb
class User < ActiveRecord::Base
has_and_belongs_to_many :roles
has_many :role_users
has_many :orders