更新不使用id属性Rails 4

时间:2014-01-12 20:38:36

标签: ruby-on-rails ruby ruby-on-rails-4 youtube-api

我已经在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

我无法弄明白......

2 个答案:

答案 0 :(得分:0)

ActiveRecord ids是整数。您已将字符串传递给find,但不会转换为整数,因此它总是会失败。

答案 1 :(得分:0)

似乎正在尝试使用:id而非:video_id搜索视频。它可能是另一个宝石(如CanCan),它可能试图在操作开始之前在过滤器中加载视频。或者它可能是控制器中的其他东西,你可以发布控制器的完整代码吗?

如果您只想让它发挥作用,请使用:id作为变量来发送视频ID,而不是:video_id