Rails 验证抛出未定义的方法错误映射 simple_form
Rails validations throwing an undefined method error map with simple_form
我正在尝试在课程模型中验证我的表单输入,但是第二次我尝试使用任何表单输入验证 :presence 为真时,我收到以下错误。与地图有关 collection.
undefined method `map' for nil:NilClass
错误是在我的表单中抛出了这行代码。这与类别地图有关。如果我没有验证并创建我的课程,将所有内容留空,它就创建了课程。我想为所有内容都添加 presence true,因此我已将 true 添加到所有数据点。
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
经过更多的搜索找到了答案。对不起,伙计们。
好的,这与我的控制器中没有变量@categories 的创建操作有关。然后抛出错误。在此线程上找到答案。
我正在尝试在课程模型中验证我的表单输入,但是第二次我尝试使用任何表单输入验证 :presence 为真时,我收到以下错误。与地图有关 collection.
undefined method `map' for nil:NilClass
错误是在我的表单中抛出了这行代码。这与类别地图有关。如果我没有验证并创建我的课程,将所有内容留空,它就创建了课程。我想为所有内容都添加 presence true,因此我已将 true 添加到所有数据点。
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
经过更多的搜索找到了答案。对不起,伙计们。
好的,这与我的控制器中没有变量@categories 的创建操作有关。然后抛出错误。在此线程上找到答案。