Как исправить «параметр отсутствует или значение пусто: команда» - PullRequest
0 голосов
/ 03 июля 2019

Я пытаюсь обновить имя существующей команды. Пользователь заходит на веб-сайт, вводит то, что он хочет, чтобы он был в текстовом поле, и нажимает «Ввод», чтобы отправить изменение. Тем не менее, я получаю сообщение об ошибке params, хотя я полагаю, что отправляю идентификатор.

Я искал в интернете, пробовал вырвать, удалил / изменил / и обновил все, что только могу придумать, но не повезло. Я знаю, что это программирование 101, но я на полной стене.

Я включил (я надеюсь, что это) подходящее кодирование, начиная с контроллера:

  def update
    #binding.pry
    team = Team.find(params[:id])
    team.update!(team_params)
          ...........
  private
    def team_params
      params.require(:team).permit(:team_name)
  end

***** HTML:

  <div class="column">
    <h1>Update Team Name</h1>
    <br>
      <%= form_for :team, url: team_path, method: :patch do |team| %>
      <input class="text_field" value="<%= @team.name %>" team.text_field :team_name, required: true %>
    <br>

    <p>
    <input type="submit" name="commit" value="Submit Changes" class="btn btn-success" />
    </p>
  </div>

Я ожидал, что пользователь наберет то, что он хочет, чтобы название команды было обновлено, и оно будет придерживаться. Тем не менее, я получаю следующее сообщение об ошибке:

ActionController :: ParameterMissing в TeamsController # update параметр отсутствует или значение пусто: команда Извлеченный источник (вокруг строки # 99):

1 Ответ

1 голос
/ 03 июля 2019

team_path необходимо id для работы

<%= form_for :team, url: team_path(@team.id), method: :patch do |team| %>

Тебе, впрочем, и с этим надо хорошо

<%= form_for @team, method: :patch do |team| %>

или даже

<%= form_for @team do |team| %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...