我有一个多维数组:@line_items
它具有与模型、产品和用户的链接。
我想从@line_items 生成一个包含用户电子邮件的一维数组。
像这样的东西:
emails = @line_items.product.user.email
但它不起作用并给出错误:
undefined method `user' for #<Array:0xb1a12e74>
对于单个 line_item 它有效。
email = @line_item.product.user.email
我试图生成这样的数组:
@line_items.each do |i|
@foodio.each do |j|
@foodio[j] = i.product.user.email
end
end
但它给
undefined method `each' for nil:NilClass
因为 foodio 是零。
任何机构都可以在这里提供帮助吗?
谢谢阅读!
更新
我的 UserMailer 模型:
class UserMailer < ActionMailer::Base
default :from => "email@mealnut.com"
def welcome_email(user, order)
@user = user
@order = order
@line_items = @order.line_items
@foodio = @line_items.map do |line_item|
line_item.product.user.email
end
mail(:to => user.email, :cc => ["care@mealnut.com", "#{foodio}"], :subject => "Order no. #{order.id}")
end
end
订单控制器:
def process_order
@order = current_order
@line_items = @order.line_items
if @line_items.size > 0
session[:order_id] = nil
UserMailer.welcome_email(current_user, @order).deliver
else
render :action => "cart"
end
end