코스 모델에서 양식 입력의 유효성을 검사하려고하지만 두 번째는 유효성 검사를 시도합니다. 모든 양식 입력에 대해 true가 존재 함 아래 오류가 나타납니다. 지도 컬렉션과 관련이 있습니다.레일 검증은 simple_form을 사용하여 정의되지 않은 메소드 오류 맵을 던졌습니다
undefined method `map' for nil:NilClass
오류가이 양식을 내 양식에 포함시키고 있습니다. 카테고리 맵과 관련이 있습니다. 유효성 검사를하지 않고 모든 과정을 비워두면 코스를 만들었습니다. 나는 모든 것에 진실을 추가했습니다. 모든 데이터 포인트에 사실을 추가했습니다.
validates :course_reference, :title, :course_img_file_name, :category_id, :description, :short_description, :venue, :location_id, :duration_days, :duration_weeks, :start_date, :start_time, :end_date, :max_enrolment, :price, :presence => true
오류가 발생했습니다. 필자는 각 양식 데이터를 자체적으로 시도하는 것으로 축소했지만, 두 번째 모델에서는 맵 오류가 발생했습니다.
아무도 도와 줄 수 있습니까?
_form.html.erb
<div class="row">
<div class="site-forms">
<div class="col-md-10">
<%= simple_form_for @course do |f| %>
<%= f.input :course_reference, placeholder: "Course Reference", required: true, label: false %>
<!-- <= f.input :course_img, as: :file, required: true, label: "Please upload a brand image for your course" %><br> -->
<span class="btn btn-default btn-file">
<i class="fa fa-cloud-upload fa-lg"></i> Upload Image
<%= f.input :course_img, as: :file, required: true, label: false %>
</span> Please keep images to 225hx300w for best display settings <br><br>
<%= f.input :title, placeholder: "Course Title", required: true, label: "Course Title" %>
<%= select_tag(:category_id, options_for_select(@categories), :prompt => "Select Category") %><br><br>
<%= f.input :description, as: :wysihtml5, placeholder: "**** NOTE DO NOT USE HEADER 1,2 or 3 TAGS. THIS WILL NOT HELP SEO FOR YOUR COURSE ***", required: true, label: "Description (Please be descriptive about the courses content)" %>
<%= f.input :short_description, placeholder: "Please input a short description for this course", required: true %>
<%= f.input :venue, placeholder: "Venue full address", required: true, label: false %>
<%= select_tag(:location_id, options_for_select(@locations), :prompt => "County") %><br><br>
<%= f.input :duration_days, placeholder: "Total amount of days the course is run. Enter 0.5 if course runs for a half day. " , required: true, label: false %>
<%= f.input :duration_weeks, placeholder: "How many weeks does the course run", required: true %>
<%= f.input :start_date, required: true %>
<%= f.input :start_time, required: true %>
<%= f.input :end_date, required: true %>
<%= f.input :max_enrolment, placeholder: "Course capacity", required: true %>
<%= f.input :price, placeholder: "EUR", required: true %>
<%= f.button :submit, class: "btn btn-primary" %>
<% end %>
</div>
</div>
</div>
Course.rb
class Course < ActiveRecord::Base
validates :course_reference, :presence => true
searchkick
belongs_to :user
belongs_to :category
belongs_to :location
has_many :subscriptions, dependent: :destroy
has_many :comments, dependent: :destroy
geocoded_by :venue
after_validation :geocode, if: :venue_changed?
has_attached_file :course_img, styles: { course_index: "300x300>", course_show: "400x600>", course_search: "100x100" }, default_url: "/images/:style/missing.png"
validates_attachment_content_type :course_img, content_type: /\Aimage\/.*\z/
def price_in_cents
price*100
end
end