html - 获取按钮以将当前用户的 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
提前致谢。
解决方案
该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 中被广泛使用。不知道以后会不会有问题。
推荐阅读
- rest - Behat 功能测试停止 Symfony HttpKernal 重定向
- mysql - Laravel Schema:要求至少四列之一不为空
- php - Laravel API - 通过 o2m 关系显示单个文件
- sockets - 本地主机不在套接字程序中的 HTTP 响应中发送数据
- laravel - 与laravel中的另一列相比,如何使用规则:唯一的值数组?
- javascript - 如何修改我的函数以添加随机源?
- c# - 如何将远程数据库中的数据加载到datagridview中
- java - JScrollPane 垂直滚动条的问题 - 它太小了
- excel - 对象“PivotItem”的方法“可见”失败
- javascript - 如何在javascript中循环遍历json响应?