私は次のことをしようとしています:
<%= order.user.try(:first_name) %>
<%= order.user.try(:last_name) %>
<%= order.user.try(:email) %>
これは機能しますが、このページのインデックスを表示すると、データがテーブルに表示されません。また、ログを表示したところ、関連するデータが投稿されていることがわかりました
carts
0ms) SELECT .* FROMcarts
WHEREcarts
.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