< % = render "/ shopping/coupons/cou"%>을 사용하여 부분 템플릿을 만들려고합니다. 어디서 잘못되었는지 확실하지 않습니다. 감사!NilClass에 대해 정의되지 않은 메소드`model_name ': 부분을 생성 할 때 클래스
이것은 오류 메시지입니다.
undefined method `model_name' for NilClass:Class
Extracted source (around line #3):
1: <h4> Coupon </h4>
2:
3: <%= form_for(@coupon, :url => shopping_coupon_path(@coupon)) do |f| %>
4: <div class="field">
5: <%= f.label :code %>
6: <%= f.text_field :code %>
이 내 쿠폰 컨트롤러 뷰가 렌더링 될 때
class Shopping::CouponsController < Shopping::BaseController
def cou
form_info
end
def create
@coupon = Coupon.find_by_code(params[:coupon][:code])
if @coupon && @coupon.eligible?(session_order) && update_order_coupon_id(@coupon.id)
flash[:notice] = "Successfully added coupon code #{@coupon.code}."
redirect_to shopping_orders_url
else
form_info
flash[:notice] = "Sorry coupon code: #{params[:coupon][:code]} is not valid."
render :action => 'show'
end
end
private
def form_info
@coupon = Coupon.new
end
def update_order_coupon_id(id)
session_order.update_attributes(:coupon_id => id )
end
end
코드를 읽을 수 있도록 노력 해주십시오. – varatis
죄송합니다. 더 나아 졌어? – otchkcom
예. 또한 코드를 리팩토링하는 방법에 대해서도 살펴볼 것입니다. 예를 들어,'create' 액션의 경우 사용자 정의 유효성 검사를 통해 모델로 로직을 이동시키는 방법을 고려해야합니다. 이것은 또 다른 질문을위한 것입니다;) – varatis