ActionController :: ParameterMissing (параметр отсутствует или значение пустое: поле) - PullRequest
0 голосов
/ 09 марта 2020

Я застрял в этой серверной проблеме и не могу понять, почему она не определена. Идентификатор передается в params в начале функции handledFormSubmit, но когда поле передается в const и определяется как const field = Field.findyById(id); =>, выход поля тогда не определен.

Почему он теряет свою ценность? (прикрепленный снимок экрана события в DOM ниже для получения дополнительной информации)

ActionController :: ParameterMissing (параметр отсутствует или значение пусто: поле):

Контроллер:

def index
  @fields = Field.all
  render json: @fields
end

def update
  @field = Field.find_by(id: params[:id])
  @field.update(field_params)

  if @field.save
    render json: @field, status: :accepted
  else
    render json: { errors: @field.errors.full_messages }, status: :unprocessible_entity
  end
end

private

def field_params
  params.require(:field).permit(:id, :name, :coordinates, :locations)
end

Адаптер:

fetchFields() {
    return this.get(`${this.baseUrl}/fields`);
}

updateField(id, input) {
    return this.patch(`${this.baseUrl}/fields/${id}`, input);
}

get(url) {
    return fetch(url).then(res => res.json());
}

patch(url, input) {
    return fetch(url, {
        method: 'PATCH',
        headers: this.headers,
        input: JSON.stringify(input),
    }).then(res => res.json());
}

Приложение:

handleFormSubmit(e) {
    e.preventDefault();
    const id = e.target.dataset.id;
    const field = Field.findById(id);
    const coordinates= e.target.querySelector('input').value

    const inputJSON = { name, coordinates };
    this.adapter.updateField(field.id, inputJSON).then(updatedField => {
      const field = Field.findById(updatedField.id);
      field.update(updatedField);
      this.addFields();
    });
  }

handleEditClick(e) {
    const id = parseInt(e.target.dataset.id);
    const field = Field.findById(id);
    document.querySelector('#update').innerHTML = field.renderUpdateForm();
}

изображение консоли разработчика

...