Params没有传递给对象?

时间:2013-06-22 18:29:47

标签: ruby-on-rails parameters params creation mysql2

我正在为医院制作西班牙语系统。 我有一个名为persona的脚手架。

在我的控制器中,我得到了一个“新”和“创建”方法,就像几乎所有。 我可以进入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_personasapellido_matapellido_patcentro_trabajo,   ciudadaniaciudadania2_idciudadania_idconctacto,   created_atdirecciondocumento_ident_idemailestado_cd,   estado_civil_cdestudio_idfecha_defuncion,   fecha_nacimientonombre_comercialnombresnro_hijos,   numero_dococupacionocupacion_idorigen_etnico_cd,   profesionprofesion_idrazon_socialreligion_cd,   religion_stringrepresentanterucservicio_basico_gral_id,   sexo_cdtelf_contactotelf_fijotelf_movil,   tipo_documento_cdubigeo_direccion_idubigeo_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;“创建角色”}

1 个答案:

答案 0 :(得分:0)

我明白了,应该是

  

PARAMS [:hds_persona]

在我的create-method中。

谢谢!