我已经在URL下方获取了向控制器发送请求的属性:
http://localhost:3000/videos/new/save_video?video_id=16&status=200&id=PhTHHldZJJQ
Constoller:
def save_video
@video = Video.find(params[:video_id])
if params[:status].to_i == 200
@video.update(:yt_youtube_id => params[:id].to_s, :is_complete => true)
Video.delete_incomplete_videos
else
Video.delete_video(@video)
end
redirect_to videos_path, :notice => "video successfully uploaded"
end
但是我以某种方式得到了这个错误:
ActiveRecord::RecordNotFound at /videos/new/save_video
Couldn't find Video with id=PhTHHldZJJQ
是否有理由没有找到:video_id
?
我无法弄明白......
答案 0 :(得分:0)
ActiveRecord ids是整数。您已将字符串传递给find
,但不会转换为整数,因此它总是会失败。
答案 1 :(得分:0)
似乎正在尝试使用:id
而非:video_id
搜索视频。它可能是另一个宝石(如CanCan
),它可能试图在操作开始之前在过滤器中加载视频。或者它可能是控制器中的其他东西,你可以发布控制器的完整代码吗?
如果您只想让它发挥作用,请使用:id
作为变量来发送视频ID,而不是:video_id
。