저는 판매 인이 판매 할 품목을 나열 할 수있는 마켓 플레이스 앱을 제작하고 있습니다. order.save
에서 실행되는 주문 확인 이메일을 보내도록 ActionMailer를 설정했습니다. 나는 이제 판매자가 상품이 배송되었음을 알리는 버튼을 클릭 할 때 실행되는 운송 확인 이메일을 설정하려고합니다.Rails 4 - ActionMailer 배송 확인 이메일 보내기
나는 ActionMailer로 전달되는 데이터에 집착하고 있습니다. 아래 메일러 방법에서 @order.buyer.email
에 undefined method 'buyer'
오류가 발생합니다. 구매자 정보를 우편 발송자에게 전달하려면 어떻게해야합니까?
메일 내용에 목록 세부 정보를 사용할 수 있도록 메일 링리스트에 목록 데이터를 전달하고 싶습니다.
모델 정보 : 사용자 모델, 목록 모델 및 주문 모델이 있습니다. 주문 모델에는 User 모델의 외래 키인 buyer_id 열과 목록 모델의 foriegn 키인 listing_id가 있습니다. 사용자 이메일은 사용자 모델에 저장됩니다.
#route
get 'shipconf' => "orders#shipconf"
#order_controller
def shipconf
AutoNotifier.shipconf_email(@order).deliver
end
#AutoNotifier.rb
def shipconf_email(order)
@order = order
mail(to: @order.buyer.email, bcc: "[email protected]", subject: 'You have a new order at Outfit Additions.')
end
#sellers admin view table with order info. seller clicks button to send mail.
<% @orders.each do |order| %>
<tr>
<td><%= order.id %></td>
<td><%= link_to order.listing.name.downcase.titleize, order.listing, data: { no_turbolink: true } %></td>
<td><%= number_to_currency(order.listing.price) %></td>
<td><%= order.shipaddress %></td>
<td><%= best_in_place order, :tracking, :type => :input, :url => listing_order_path(id: order.id, listing_id: order.listing_id) %> </td>
<td><%= link_to "Send Email", shipconf_path(order), class: "btn btn-sm btn-primary" %></td>
</tr>
<% end %>
#order model
belongs_to :listing
belongs_to :buyer, class_name: "User"
belongs_to :seller, class_name: "User"
#user model
has_many :listings, dependent: :destroy
has_many :orders, class_name: "Order", foreign_key: "seller_id"
has_many :purchases, class_name: "Order", foreign_key: "buyer_id"
#listing model
belongs_to :user
has_many :orders
, 나는 (방법'shipconf_path에 순서를 전달 주문)'. 그게 충분하지 않니? 나는 당신의 제안을 시도했지만'ID없이 주문을 찾지 못했습니다 '라는 오류 메시지가 발생했습니다 – Moosa
아니요, 충분하지 않습니다! 액션 내에서 검색 할 수 있도록 링크 내에 주문 또는 order_id를 전달합니다. 'Order.find (params [: order_id])'시도해보십시오. – crispychicken
알겠습니다. 감사. 나는'shipconf_path (id : order.id)' – Moosa