2

出于某种原因,我不断收到此错误。

找不到没有 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])

结尾

然后在整个过程中继续使用类变量。但是有人告诉我不鼓励使用类变量。我该如何正确地做到这一点?

4

1 回答 1

0

@album = Album.find(参数[:video][:album_id])

于 2012-05-18T01:56:15.560 回答