出于某种原因,我不断收到此错误。
找不到没有 ID 的专辑
但这没有意义,因为在我的 debug.params 中它说:
{"utf8"=>"✓",
"authenticity_token"=>"os9DVVZS6//bs3Ne2Xfrh4VnKXNtDXkZaE4s/3iQagE=",
"视频"=>{"url"=>"www.youtube.com/watch?v=yIRuri1AB0I",
"album_id"=>"1"},
“提交”=>“下一步”}
这是控制器:
类视频控制器 < 应用控制器
包括专辑助手
before_filter :signed_in_user, only: [:create, :destroy] #稍后添加更新
before_filter :correct_user, only: :destroy
def show
@video = Video.find(params[:id])
end
def new
if signed_in?
@album = Album.find(params[:album_id])
@video = @album.build_video
end
end
def create
@album = Album.find(params[:album_id])
@video = @album.build_video(params[:video])
if @video.save
flash[:success] = "Success!"
redirect_to new_small_reward_path(:album_id => @album)
else
render 'new'
end
end
结尾
我什至在表单中添加了一个隐藏字段,我认为我不应该这样做,但决定尝试:
在您单击提交之前,该 URL 会显示 /videos/new?album_id=1。
如果我用这个编写控制器,这个问题就完全消失了:
定义新
@@album = Album.find(参数[:album_id])
结尾
然后在整个过程中继续使用类变量。但是有人告诉我不鼓励使用类变量。我该如何正确地做到这一点?