在我的控制器中,我得到了一个“新”和“创建”方法,就像几乎所有。 我可以进入new_persona视图(带表单)并输入一些数据。现在的问题是,当我想创建我插入的人时,我收到以下错误:
“Hds :: PersonasController #create”中的“ActiveRecord :: StatementInvalid”
此外它告诉我2列不能为空。当然,我得到了null应该为false的mysql-option,因为我不希望这两列是空的。 问题是,即使我在这些字段中插入了某些内容,rails也会出现此错误。 希望你了解我,可以帮助我。代码如下:
personas_controller new和create:
def new
@persona = Hds::Persona.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @persona }
end
end
def create
@persona = Hds::Persona.new(params[:persona])
respond_to do |format|
if @persona.save!
format.html { redirect_to @persona, notice: 'Persona was successfully created.' }
format.json { render json: @persona, status: :created, location: @persona }
else
format.html { render action: "new" }
format.json { render json: @persona.errors, status: :unprocessable_entity }
end
end
end
形式:
<%= form_for(@persona, :validate=>true) do |f| %>
<% if @persona.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@persona.errors.count, "error") %> prohibited this persona from being saved:</h2>
<ul>
<% @persona.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<table class="form_table">
<tr class="partial_head">
<th colspan="2">
<h3>Datos personales</h3>
</th>
</tr>
<tr>
<div class="field">
<td><%= f.label :numero_doc %></td>
<td><%= f.text_field :numero_doc %></td>
</div>
</tr>
[...]
</table>
f.submit
<% end %>
感谢您的帮助!! 问候, CO
这里有完整的错误消息:
Mysql2 ::错误:列'apellido_pat'不能为null:INSERT INTO
hds_personas
(apellido_mat
,apellido_pat
,centro_trabajo
,ciudadania
,ciudadania2_id
,ciudadania_id
,conctacto
,created_at
,direccion
,documento_ident_id
,estado_cd
,estado_civil_cd
,estudio_id
,fecha_defuncion
,fecha_nacimiento
,nombre_comercial
,nombres
,nro_hijos
,numero_doc
,ocupacion
,ocupacion_id
,origen_etnico_cd
,profesion
,profesion_id
,razon_social
,religion_cd
,religion_string
,representante
,ruc
,servicio_basico_gral_id
,sexo_cd
,telf_contacto
,telf_fijo
,telf_movil
,tipo_documento_cd
,ubigeo_direccion_id
,ubigeo_nacimiento_id
,updated_at
)VALUES(NULL,NULL,NULL,NULL,NULL,NULL,NULL, '2013-06-24 07:39:24',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, '2013-06-24 07:39:24')
这里有参数:
{ “UTF8”=&gt; “中✓”, “authenticity_token”=&gt; “中VYHiP9 / zLNjZ0ElAFh1IeC4s5X5oxVFFhpbmbK2oVAs =”, “hds_persona”=&gt; {“numero_doc”=&gt;“”,“sexo”=&gt;“masculino”, “nombres”=&gt;“test”,“apellido_pat”=&gt;“test”,“apellido_mat”=&gt;“”, “direccion”=&gt;“”,“fecha_nacimiento”=&gt;“”,“estado_civil”=&gt;“soltero”, “nro_hijos”=&gt;“”,“telf_movil”=&gt;“”,“email”=&gt;“”, “ubigeo_direccion_id”=&gt;“”,“ubigeo_nacimiento_id”=&gt;“”, “ciudadania_id”=&gt;“”,“ciudadania2_id”=&gt;“”, “origen_etnico”=&gt;“asiatico”,“religion”=&gt;“catolico”, “estudio_id”=&gt;“”,“ocupacion_id”=&gt;“”,“profesion_id”=&gt;“”}, “commit”=&gt;“创建角色”}
答案 0 :(得分:0)
我明白了,应该是
PARAMS [:hds_persona]
在我的create-method中。
谢谢!