首页 > 解决方案 > 获取按钮以将当前用户的 id 添加到字段

问题描述

我正在尝试按下一个简单的按钮,将当前用户的 id 存储到一个字段中,但得到一个错误提示

ActionController::ParameterMissing(参数丢失或值为空:request):

这是我的代码。

按钮代码

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

请求控制器

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

提前致谢。

标签: htmlruby-on-rails

解决方案


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 中被广泛使用。不知道以后会不会有问题。


推荐阅读