Получение кнопки для добавления идентификатора текущего пользователя в поле - PullRequest
0 голосов
/ 20 марта 2019

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

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

Вот мой код.

Код кнопки

<%= form_for(request.accept, remote: true) do |f| %>
  <%= f.submit "Accept", class: "btn btn-primary" %>
<% end %>

request_controller

   def accept
    @request.ssp_id = current_user.id
    @request.save
    flash[:success] = "The request have been accepted!"
  end

Заранее спасибо.

1 Ответ

0 голосов
/ 20 марта 2019

Ошибка ParameterMissing, вероятно, связана с тем, что вы указали требование request модель в своих параметрах через strong_params.

Поскольку вы пытаетесь обновить существующую запись с помощью current_user, который вы указалиВам не нужна форма.

Обновите действие принятия в RequestsController:

def accept
  @request = Request.find params[:id]
  if @request.update_attribute(:ssp, current_user)
    redirect_to requests_path
    flash[:success] = "The request have been accepted!"
  end
end

Модель запроса

class Request < ApplicationRecord
  belongs_to :ssp, class_name: "User"
end

И ваши маршруты:

resources :requests do
  member do
    get "accept"
  end
end


<%= link_to 'Accept request', accept_request_path(request) %>

Также в качестве рекомендации попробуйте использовать другое имя для вашей модели, поскольку слово request широко используется в Rails.Я не знаю, может ли это быть проблемой позже.

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