Мне тяжело понять, что, черт возьми, происходит здесь.STI, подвалы и сбои в проверке
У меня есть страница модели, и у нее есть два подкласса, называемых QeopPage и GymPage. Я пытаюсь создать gympage но валидация в обоих классах продолжают неудачу с 'Validation failed: Title can't be blank, Meta description can't be blank'
class GymPage < Page
self.set_table_name="pages"
validates :meta_description, presence:true
end
class Page < ActiveRecord::Base
validates :title, :presence=>true
end
Я думал, что это может быть проблемой PARAMS, но нет ничего в моем сервере журналы, чтобы указать это. Я могу сделать gympage в консоли .... Вот соответствующий журнал сервера SNIPPET
Parameters: {"utf8"=>"✓", "authenticity_token"=>"ULWHNAM71V3T+tEgYFaJfWtIQ7twYwktmdo6OSduiYE=", "gym_page"=>{"meta_title"=>"esfwef", "meta_description"=>"wefwefwef", "title"=>"wefwefwef", "body"=>"wefwef", "slug"=>"about", "asset_attachment_title"=>""}, "commit"=>"Update page", "venue_id"=>"venue_one"}
Admin Load (0.4ms) SELECT `admins`.* FROM `admins` WHERE `admins`.`id` = 633 ORDER BY `admins`.`id` ASC LIMIT 1
Venue Load (0.5ms) SELECT `venues`.* FROM `venues` WHERE `venues`.`slug` = 'mitre-passage-8754d82e-8eeb-4d9f-91e4-c13b3661991c' ORDER BY venues.title ASC LIMIT 1
(0.2ms) BEGIN
Admin Load (0.4ms) SELECT `admins`.* FROM `admins` ORDER BY `admins`.`id` ASC LIMIT 1
Admin Load (0.3ms) SELECT `admins`.* FROM `admins` WHERE `admins`.`id` = 2 LIMIT 1
Banner Load (0.3ms) SELECT `banners`.* FROM `banners` WHERE `banners`.`id` IS NULL LIMIT 1
CACHE (0.0ms) SELECT `banners`.* FROM `banners` WHERE `banners`.`id` IS NULL LIMIT 1
(0.2ms) ROLLBACK
Completed 422 Unprocessable Entity in 998ms
Я должен добавить, что контроллер работает, как ожидалось - параметры передается правильно.
Что, черт возьми, происходит ?!
обновление
код контроллера
def create
@gym_page = GymPage.new(params[:gym_page_params])
@gym_page.admin=current_admin
if @gym_page.save!
flash[:notice] = 'Page created'
redirect_to admin_venue_gym_pages_path(@venue)
else
flash[:error] = 'There was an error'
render :new
end
end
Вы можете разместить код контроллера «Ошибка может возникнуть оттуда – kasperite
использовать' @gym_page = GymPage.new (params [: gym_page]) '. В соответствии с атрибутами страницы журнала входа в журнал запрос проходит через gym_page. –
DOH !, спасибо @NarenSisodiya – user3868832