私は多次元配列を持っています: @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