Я использую Rails 4.0.1 с Ruby 2.0.0. У меня простая функциональность категорий. Каждая категория может принадлежать другой или быть корневой категорией (без родителя). Но если выбрать пустое («Нет») значение из выбора, категория не может быть сохранена. Где моя ошибка?Пустое значение не может быть сохранено, если оно выбрано в поле выбора. (Gem Ancestry)
category.rb
class Category < ActiveRecord::Base
has_many :items
has_ancestry
validates :name, presence: true, length: { minimum: 3 }
mount_uploader :icon, IconUploader
end
categories_controller.rb
def create
@category = Category.new(category_params)
if @category.save
redirect_to admin_categories_path, notice: "Category was successfully created!"
else
render action: "new"
end
end
_form.html.slim
= form_for [:admin, @category] do |f|
= f.label :name
= f.text_field :name
= f.label :ancestry
= f.select :ancestry, Category.all.map {|p| [ p.name, p.id ] }, include_blank: 'None'
= f.label :icon
= f.file_field :icon
= f.submit nil
журнала транзакций
Started POST "/admin/categories" for 127.0.0.1 at 2014-01-11 12:18:35 +0600
Processing by Admin::CategoriesController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"aZS2bO2HEy65cf2jQmm5BTy1VS/1Na1LBN4mHR3FYy4=", "category"=>{"name"=>"Example", "ancestry"=>""}, "button"=>""}
(0.1ms) begin transaction
(0.1ms) rollback transaction
Но как сделать это «Рельсы» путь? Есть ли какие-нибудь помощники вида для автоматического преобразования пустой строки в нуль? –