我正在尝试简单地按一下按钮,该按钮会将当前用户的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
谢谢。
答案 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中得到了广泛使用。我不知道这以后是否会成为问题。