Ruby on rails Rails应用程序未保存嵌套表单模型数据

Ruby on rails Rails应用程序未保存嵌套表单模型数据,ruby-on-rails,model,nested-forms,Ruby On Rails,Model,Nested Forms,保存申请者模型时,不会将嵌套模型数据保存到数据库中。我已经粘贴了控制器代码、模型代码和传递参数 我的参数是: Parameters: {"utf8"=>"✓", "authenticity_token"=>"5F8h7qG2pez9Rsutnq3JXYyXbPkbVJAlgfIfsE1bdUw=", "applicant"=> {"job_id"=>"1", "first_name"=>"sanyam", "location"=>"", "email"=>

保存申请者模型时,不会将嵌套模型数据保存到数据库中。我已经粘贴了控制器代码、模型代码和传递参数

我的参数是:

Parameters: {"utf8"=>"✓", "authenticity_token"=>"5F8h7qG2pez9Rsutnq3JXYyXbPkbVJAlgfIfsE1bdUw=", "applicant"=>
{"job_id"=>"1", "first_name"=>"sanyam", "location"=>"", "email"=>"", "mob_no"=>"", "alternative_no"=>"", "last_name"=>"jain", "works_attributes"=>{"1366604495995"=>
{"title"=>"M Tech", "company_name"=>"", "start_month"=>"", "start_year"=>"", "end_month"=>"", "end_year"=>"", "description"=>"", "_destroy"=>"false"}, "1366604506595"=>
{"title"=>"B Tech", "company_name"=>"", "start_month"=>"", "start_year"=>"", "end_month"=>"", "end_year"=>"", "description"=>"", "_destroy"=>"false"}}, "linkedin"=>"", 
"twitter"=>"", "facebook"=>"", "message"=>""}, "submit"=>""}
我的控制器代码是:

def createProfile
@applicant = Applicant.new(params[:applicant])
@applicant.save
end
我的申请模型是

class Applicant < ActiveRecord::Base
attr_accessible :first_name, :last_name, :location, :email, :mob_no, :alternative_no, :linkedin, :facebook, :twitter, :message, :resume, :job_id
has_many :works, :dependent => :destroy
has_many :educations, :dependent => :destroy
attr_accessible :works_attributes, :educations_attributes
accepts_nested_attributes_for :works, :reject_if => lambda { |a| a[:content].blank? }, :allow_destroy => true

accepts_nested_attributes_for :educations, :reject_if => lambda { |a| a[:content].blank? }, :allow_destroy => true
end
class申请人:破坏
有很多:教育,:依赖=>:毁灭
属性可访问:工作属性,:教育属性
接受:works、:reject_if=>lambda{a | a[:content].blank?}、:allow_destroy=>true的_嵌套_属性
接受以下内容的_嵌套的_属性_:educations,:reject _if=>lambda{a | a[:content].blank?},:allow _destroy=>true
结束
我的工作模式是

class Work < ActiveRecord::Base
attr_accessible :applicant_id, :company_name, :description, :end_month, :end_year, :start_month, :start_year, :title
belongs_to :applicant
validates_associated :applicant
end
课堂作业
如果您指定了reject\u,则表示当参数中没有:内容时,它不应保存子模型。因此,请确保您的参数具有包含值的content属性。您的参数应该是这样的:

{“utf8”=>“✓", "真实性令牌“=>”5F8h7qG2pez9Rsutnq3JXYyXbPkbVJAlgfIfsE1bdUw=“,”申请人“=> {“工作id”=>“1”,“名字”=>“sanyam”,“地点”=>,“电子邮件”=>,“移动号码”=>,“替代号码”=>,“姓氏”=>“jain”,“工作属性”=>{“1366604495995”=> {“标题”=>“M技术”,“公司名称”=>,“开始月”=>,“开始年”=>,“结束月”=>,“结束年”=>,“说明”=>,“内容”=>“一些内容”,“销毁”=>“假”},1366604506595=> {“标题”=>“B技术”,“公司名称”=>,“开始月”=>,“开始年”=>,“结束月”=>,“结束年”=>,“说明”=>,“内容”=>“一些内容”,“销毁”=>“假”},,“linkedin”=>,
“twitter”=>“,“facebook”=>”,“message”=>“},“submit”=>“}

记住,如果未保存子表数据,则可以访问两个属性

属性可访问:第一个名称 attr\u accessible:works\u属性,:allow\u destroy=>true
接受控制器用户“save!”中的:works

的\u嵌套\u属性,而不是“save!”,并发布引发的错误。您还需要在申请者模型中添加可访问的属性:works\u属性,:education\u属性这两个属性,它不起作用我已经制作了:works\u属性,:educations\u Attributes accessiblemake确保两者中的内容字段均不为零,因为如果bothits中的内容字段对我有很大帮助,则拒绝保存工作和教育。真的谢谢你。但是我想知道,为什么必须在其中包含一个名为content的字段?如果是这样,那么如果您给出的条件计算结果为false,那么您应该拒绝save。由于您的条件检查{a | a[:content].blank?},因此需要:content参数。