获取按钮以将当前用户的ID添加到字段

时间:2019-03-20 00:08:03

标签: html ruby-on-rails

我正在尝试简单地按一下按钮,该按钮会将当前用户的ID存储到字段中,但出现错误提示

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 :(得分:0)

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中得到了广泛使用。我不知道这以后是否会成为问题。