저는 레일을 처음 사용하기 때문에 주문시 사이트 관리자에게 장바구니 html보기를 시도하고 있습니다. 이메일 부분은 간단한 HTML 그냥 잘 작동하지만 루비 코드를 추가 할 때 다음과 같은 오류 얻을 전망 페이지를 렌더링하는 데 : 나는 내가가 지역 주민을 추가 할 필요가 있다고 생각 읽은 내용에서레일에있는 지역 주민을 이해하지 못함 - 방법 없음 오류가 발생했습니다.
NoMethodError in Charges#create
Showing /home/ubuntu/workspace/app/views/order_mailer/order_email.html.erb where line #7 raised:
undefined method `size' for nil:NilClass
Extracted source (around line #7):
5
6
7
<%= render "carts/shopping_cart", size: @order_items.size %>
Rails.root: /home/ubuntu/workspace
Application Trace | Framework Trace | Full Trace
app/views/order_mailer/order_email.html.erb:7:in `_app_views_order_mailer_order_email_html_erb___1590505826361550286_7'
app/mailers/order_mailer.rb:11:in `order_email'
app/controllers/charges_controller.rb:10:in `create'
을 내 렌더링 코드를 사용하지만 나는 지역 주민이 정확히 무엇인지, 그리고 그들이 내 코드에 무엇을 넣을 지 혼란 스럽다. 내가 완전히 벗어난 길이고이 오류가 현지인들과 아무런 관련이 없다면 나는 올바른 방향으로 인도하는 것에 감사 할 것입니다.
감사합니다.
order_email보기 :
<h1>You have a new order </h1>
<%= render "carts/shopping_cart", size: @order_items.size %>
내가 이메일에 렌더링하려고 뷰 :
<% if [email protected]_item.nil? && @order_item.errors.any? %>
<div class="alert alert-danger">
<ul>
<% @order_item.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<% if @order_items.size == 0 %>
<p class="text-center">
There are no items in your shopping cart. Please <%= link_to "go back", root_path %> and add some items to your cart.
</p>
<% else %>
<% @order_items.each do |order_item| %>
<%= render 'carts/cart_row', product: order_item.product, order_item: order_item, show_total: true %>
<% end %>
order_mailer.rb : 나는 지방 주민이 경우에만 사용됩니다 생각
class OrderMailer < ApplicationMailer
default from: "[email protected]"
def order_email(order_items)
@order_items = order_items
mail(to: "[email protected]", subject: "Your subject")
end
end