参数缺少Ruby

ih99xse1  于 2023-06-29  发布在  Ruby
关注(0)|答案(1)|浏览(107)

Asistencia控制器从用户中获取所有内容是CRUD,其中用户,条目,密码,用户名存在
这些是应该更新和更改条目的参数

class AsistenciaController < UsersController
  def update
    if @asistencia.update(asistencia_params)
      redirect_to asistencia_path, notice: "Asistencia guardada correctamente"
    else
      render :edit, status: :unprocessable_entity
    end
  end

private
  def asistencia
    @asistencia = User.all
  end

  def asistencia_params
    params.require(:asistencia).permit(:id, :username, :entry)
  end

end

ActionController::ParameterMissing(缺少参数或值为空:asistencia):
This is el EBR the asistencia

<h1>Marcar Asistencia</h1>

<%= form_with url: '/guardar_asistencia', method: :post do |form| %> 

    <%= form.hidden_field :asistencia, value: @asistencia %>

    <%= form.label :id, style: "display: block" %>
    <%= form.text_field :id %>
    <br>
    <%= form.label :username, style: "display: block" %>
    <%= form.text_field :username %>
    <br>
    <%= form.label :entry, "Entrada o salida:" %>
    <%= form.select :entry, [["Entrada", true], ["Salida", false]] %>
    <%= form.submit 'Registrar' %>
<%end%>

我试着改变参数,一切都保持不变,我用完了想法来修复它我是相对新的ruby 需要帮助

lnvxswe2

lnvxswe21#

您需要form_with引用模型,而包含为隐藏字段:

<h1>Marcar Asistencia</h1>

<%= form_with model: @asistencia, url: '/guardar_asistencia', method: :post do |form| %> 
    <%= form.label :id, style: "display: block" %>
    <%= form.text_field :id %>
    <br>
    <%= form.label :username, style: "display: block" %>
    <%= form.text_field :username %>
    <br>
    <%= form.label :entry, "Entrada o salida:" %>
    <%= form.select :entry, [["Entrada", true], ["Salida", false]] %>
    <%= form.submit 'Registrar' %>
<%end%>

这应该以正确的方式格式化参数哈希,这样就不会抛出错误。

相关问题