![](/img/trans.png)
[英]ArgumentError (wrong number of arguments (given 2, expected 0..1)
[英]Ruby ArgumentError: wrong number of arguments (given 2, expected 0..1)
当我尝试使用GET /lecture_events/1
调用我的 api 时,我一直面临这个错误。 错误是
ArgumentError (wrong number of arguments (given 2, expected 0..1)):
app/controllers/lecture_events_controller.rb:46:in `set_lecture_event'
这是我的 lecture_events controller 代码
class LectureEventsController < ApplicationController
before_action :set_lecture_event, only: [:show, :update, :destroy]
# GET /lecture_events
def index
@lecture_events = LectureEvent.all
render json: @lecture_events
end
# GET /lecture_events/1
def show
@lecture_event = LectureEvent.find(params[:id])
render json: @lecture_event
end
# POST /lecture_events
def create
@lecture_event = LectureEvent.new(lecture_event_params)
if @lecture_event.save
render json: @lecture_event, status: :created, location: @lecture_event
else
render json: @lecture_event.errors, status: :unprocessable_entity
end
end
# PATCH/PUT /lecture_events/1
def update
if @lecture_event.update(lecture_event_params)
render json: @lecture_event
else
render json: @lecture_event.errors, status: :unprocessable_entity
end
end
# DELETE /lecture_events/1
def destroy
@lecture_event = LectureEvent.find(params[:userID])
@lecture_event.destroy
end
private
# Use callbacks to share common setup or constraints between actions.
def set_lecture_event
@lecture_event = LectureEvent.find(params[:id])
end
# Only allow a list of trusted parameters through.
def lecture_event_params
params.require(:lecture_event).permit(:timestamp, :eventType, :lectureID, :userID)
end
end
我一直在尝试调试有问题的 function,但在阅读文档后,我很确定这就是调用modelName.find()
的方式。 我尝试传入一个字符串而不是params
,但它仍然会引发相同的错误。
有谁知道它可能有什么问题?
我的 rails 版本是6.1.4
Ruby 是3.0.2
和 mongoid 是7.0.5
编辑:这是我的LectureEvent
model 代码
class LectureEvent
include Mongoid::Document
field :timestamp, type: Date
field :event_type, type: String
field :lecture_id, type: String
field :user_id, type: String
end
以及完整的堆栈跟踪(如果需要) StackTrace
EDIT2:将"asd"
更改为正确的参数值
我想我找到了答案。 我刚刚检查了我的收藏,里面没有任何文件。 因此,我创建了一个虚拟文档并使用该文档的 ID 调用了 api,它起作用了,但是当我发送一个虚拟 ID 时,它仍然抛出了这个错误。
我现在唯一的问题是 ruby 不应该只是告诉我没有找到有问题的文档而不是这个参数错误吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.