“找不到没有ID的[型号]”Rails 3.2.3

时间:2012-05-18 01:21:34

标签: ruby-on-rails forms controller associations form-for

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

  

找不到没有ID的相册

但这没有意义,因为在我的debug.params中它说:

  
    

{ “UTF8”=> “中✓”,

         

“authenticity_token”=> “中os9DVVZS6 // bs3Ne2Xfrh4VnKXNtDXkZaE4s / 3iQagE =”,

         

“视频”=> { “URL”=> “中www.youtube.com/watch?v=yIRuri1AB0I”,

         

“album_id”=> “中1”},

         

“提交”=> “中接着”}

  

这是控制器:

  

类VideosController< ApplicationController中

     

包括AlbumsHelper

     

before_filter:signed_in_user,仅限:[:create,:destroy] #add update later

     

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
  

我甚至在表单中添加了一个隐藏字段,我认为不应该这样做,但我决定尝试:

  

在您点击提交之前,网址显示/ videos / new?album_id = 1。

如果我用这个写控制器,这个问题就完全消失了:

  

def new

     

@@ album = Album.find(params [:album_id])

     

然后继续在整个事情中使用类变量。但有人告诉我,不鼓励使用类变量。我该怎么做呢?

1 个答案:

答案 0 :(得分:0)

  

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