我很难确定这里到底发生了什么。
我有一个模型页面,它有两个子类,叫做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 .... 这是相关的服务器日志代码段
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
答案 0 :(得分:1)
根据请求日志健身房页面属性在gym_page内传递,因此您需要在控制器中执行以下操作
@gym_page = GymPage.new(params[:gym_page])