代码之家  ›  专栏  ›  技术社区  ›  Amit Singh Tomar

containerFormatsController中的noMethodError为<containerFormat:0x450f560创建未定义的方法“yuvstreams”>

  •  0
  • Amit Singh Tomar  · 技术社区  · 14 年前

    我收到这个错误,我不知道发生了什么,前几天它工作得很好,但现在不工作了。这是代码:

    @containerformat = Containerformat.new(params[:containerformat])
    
    if @containerformat.containerFmt == 'TS'
      @containerformat = Containerformat.new(params[:containerformat])
      @transportstream =
        @containerformat.transportstreams.build(params[:transportstream])
      @transportstream.save
      @program = @transportstream.programs.build(params[:program])
      @program.save
      @user = @containerformat.users.build(params[:user])
      @user.save
    
      if params[:videoCodec_id]!= nil
        @stream = @program.streams.build(params[:stream])
        @stream.videocodec = Videocodec.find(@stream.videoCodec_id)
        @stream.save
      end
      if params[:audioCodec_id]!= nil
        @stream = @program.streams.build(params[:stream])
        @stream.audiocodec = Audiocodec.find(@stream.audioCodec_id)
        @stream.save
      end
    
    end
    
    if @containerformat.containerFmt == 'PS'
      @programstream =
        @containerformat.programstreams.build(params[:programstream])
      @subtitle = @programstream.subtitles.build(params[:subtitle])
      @subtitle.save
      @programstream.save
      @stream = @programstream.streams.build(params[:stream])
      @user = @containerformat.users.build(params[:user])
      @user.save
    
      if params[:videoCodec_id]!= nil
        @stream = @programstream.streams.build(params[:stream])
        @stream.videocodec = Videocodec.find(@stream.videoCodec_id)
        @stream.save
      end
      if params[:audioCodec_id]!= nil
        @stream = @programstream.streams.build(params[:stream])
        @stream.audiocodec = Audiocodec.find(@stream.audioCodec_id)
        @stream.save
      end
    
    end
    
    if @containerformat.containerFmt == 'YUV'
      @yuvstream = @containerformat.yuvstreams.build(params[:avistream])
      #@subtitle = @yuvstream.subtitles.build(params[:subtitle])
      #@subtitle.save
      @yuvstream.save
      @stream = @yuvstream.streams.build(params[:stream])
      @user = @containerformat.users.build(params[:user])
      @user.save
    
      if params[:videoCodec_id]!= nil
        #@stream = @programstream.streams.build(params[:stream])
        #@stream.videocodec = Videocodec.find(@stream.videoCodec_id)
        #@stream.save
      end
      if params[:audioCodec_id]!= nil
        #@stream = @programstream.streams.build(params[:stream])
        #@stream.audiocodec = Audiocodec.find(@stream.audioCodec_id)
        #@stream.save
      end
    
    end
    
    
    if @containerformat.containerFmt == 'AVI'
      @avistream = @containerformat.avistreams.build(params[:avistream])
      @avistream.save
      @stream = @avistream.streams.build(params[:stream])
      @user = @containerformat.users.build(params[:user])
      @user.save
    
      if params[:videoCodec_id]!= nil
        @stream = @avistream.streams.build(params[:stream])
        @stream.videocodec = Videocodec.find(@stream.videoCodec_id)
        @stream.save
      end
      if params[:audioCodec_id]!= nil
        @stream = @avistream.streams.build(params[:stream])
        @stream.audiocodec = Audiocodec.find(@stream.audioCodec_id)
        @stream.save
      end
    end
    

    我把yuvstreams作为数据库中的表,就像其他表avisteams、programstreams表一样。

    1 回复  |  直到 12 年前
        1
  •  1
  •   Shadwell    14 年前

    has_many :yuvstreams Containerformat

    api docs has_many

    YuvStream ContainerFormat has_many :yuv_streams