【发布时间】:2013-02-18 11:26:28
【问题描述】:
我正在尝试执行以下操作:
<%= order.user.try(:first_name) %>
<%= order.user.try(:last_name) %>
<%= order.user.try(:email) %>
但是,当我查看此页面的索引时,这有效,数据不会出现在表中。我也查看了日志,看到相关数据正在发布中
在 2013-02-18 11:15:02 +0000 开始为 127.0.0.1 发布“/orders” OrdersController#create 作为 HTML 参数处理: {"utf8"=>"?", "authenticity_token"=>"Rjf7+Z8UAPh9ZofIrOs+p6AoGPfgd/6rfdTRqJLtx0g=", "user"=>{"first_name"=>"Test", "last_name"=>"TestHome", "email"=>"test@test.com"}, "order"=>{"address"=>"3433234243", "card_number"=>"45423554213994", "card_type"=>"visa", "card_expires_on(1i)"=>"2013", "card_expires_on(2i)"=>"2", "card_expires_on(3i)"=>"1"}, "commit"=>"确认订单"} 购物车加载 (0.0ms) SELECT
carts.* FROMcartsWHEREcarts.id= 8 LIMIT 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 是空的。
获取数据的最佳方式是什么。
Order.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
【问题讨论】:
-
你可以试试
标签: ruby-on-rails ruby-on-rails-3