如何从另一个关联的表呈现字段?铁轨上的红宝石



>我有 3 个模型:User、Order 和 UserOrder

user_order.rb

belongs_to :user, :class_name => "User"
belongs_to :order, :class_name => "Order"

用户.rb

has_many :user_orders, foreign_key: :user_id,
                      dependent: :destroy
has_many :ordering, through: :user_orders,
                  source: :order

订单.rb

has_many :reverse_user_orders, foreign_key: :order_id, 
                              dependent: :destroy,
                              class_name: "UserOrder"
has_many :orderers, through: :reverse_user_orders, source: :user

我在 orders_controller.rb 中有控制器操作,它创建了用户和订单之间的关系并且工作正常(它在数据库中创建记录)

 def create
 ...
   if @order.save
    current_user.order!(@order)
 ....

我想在订单的索引.html.erb 文件中呈现 user.name

<%= order.orderers.name %>

但在 HTML 中,它只呈现标题"用户"。如果我使用 <%= order.orderers %>它会返回完整的哈希,包括 user.name。

[#<User id: 19, name: "Peter Jackson", email: "foobar@vk.com", remember_token:   "pj6eI2mc2_6G0UbumoEqMA", password_reset_token: nil, password_reset_sent_at: nil, created_at: "2013-01-27 14:10:15", updated_at: "2013-01-27 14:10:28", provider: nil, uid: nil, passport: nil, region: "Zimbabve"]

有什么方法可以在订单索引.html.erb中呈现 user.name?谢谢

<%= order.orderers.first.name %> #for the first orderer.
<%= order.orderers.last.name %> #for the last orderer.

对于每个订购者:

<% for o in order.orderers %>
  <%= o.name %>
 <% end %>

问候!

order.orderers将返回一个数组而不是单个值。如果要打印第一个"订购者"的name。然后执行以下操作:

<%= order.orderers.first.name %>

相关内容

  • 没有找到相关文章

最新更新