Невозможно обновить поля из формы редактирования, используя рельсы - PullRequest
0 голосов
/ 29 ноября 2018

В моем представлении Index для кнопки редактирования у меня есть следующий код:

<td id="EditButton"><%= link_to "Edit", edit_comment_path(data.Metric+","+data.HouseId+","+data.ADate.to_s) %></td>

В моем контроллере Comment у меня есть следующий код для редактирования и обновления:

def edit
            edit_array=params[:id].split(',')
            @one = edit_array[0]
            @two = edit_array[1]
            @three = edit_array[2]
            @comment = Comment.find_by(Metric: @one , HouseId: @two , ADate: @three)      
end
       def update
            @comment = Comment.find(params[:id])
            if @comment.update(comments_params)
              redirect_to metrics_path
            else
              render 'edit'
            end   
    end        

У меня есть этот тег формы в моей форме редактирования:

<%= form_for :comments_controller, url: comments_path(@comment) do |f| %>

Поля в форме редактирования:

<tr>
          <td><%= @comment.Metric %></td>
          <td><%= @comment.HouseId%></td>
          <td><%= @comment.ADate%></td>
          <td><%= f.select :IsAlarmCreated, options_for_select([["True", "1"], ["False", "0"]]), :class => 'chosen-select', :required => true, selected: @comment.IsAlarmCreated  %></td>
          <td><%= f.text_field :UserName, value: @remote_user %></td>
          <td><%= f.text_field :Comments, value: @comment.Comments, required: true  %></td>
          <td><%= f.submit "Save"%></td>

Я выполняю следующие действия: Индексная страница загружается После нажатия на кнопку редактирования, онаПерейдите к странице редактирования. Я внесу некоторые изменения в поля и нажмите «Сохранить». Теперь он перенаправляется в комментарии со следующей ошибкой:

Не удалось найти действие 'create' для CommentsController

Ожидается перенаправление в представление индекса контроллера Metric после обновления значений в mysql.

1 Ответ

0 голосов
/ 29 ноября 2018

Вы используете неправильный путь для формы, используйте comment_path(@comment) (единственное число).comments_path(@comment) приводит к /comments.123 вместо /comments/123

Также возможно, что @comment, найденный в методе #edit, имеет значение nil и форма отправляется на /comments путь.

https://guides.rubyonrails.org/routing.html#path-and-url-helpers

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...