2014-02-01 3 views
0

Я просто в процессе загрузки видео в своем приложении с помощью pandastream, но я не могу обернуть голову вокруг этих attr_accessible рельсов 3 вещи, которые не находятся в рельсах 4. Я знаю это имеет какое-то отношение к сильным параметрам, но что касается того, что передать в код, меня смущает, спасибо, вот некоторые фрагменты.Загрузка видео с Pandastream с помощью рельсов

Вот моя модель видео.

class Video < ActiveRecord::Base 
    validates_presence_of :panda_video_id 


def panda_video 
    @panda_video ||= Panda::Video.find(panda_video_id) 
    end 
end 

И видеоконтроллер.

class VideosController < ApplicationController 
    def show 
    @video = Video.find(params[:id]) 
    @original_video = @video.panda_video 
    @h264_encoding = @original_video.encodings["h264"] 
    end 

    def new 
    @video = Video.new(video_params) 
    end 

    def create 
    @video = Video.create!(params[:video]) 
    redirect_to :action => :show, :id => @video.id 
    end 

    def video_params 

    params.require(:video).permit(:panda_video_id, :video) 

    end 
end 

ответ

1

У меня была аналогичная проблема. Я изменил форму, чтобы передать информацию контроллеру несколько иначе. Я был в состоянии установить все следующим образом:

видеоконтроллер

class VideosController < ApplicationController 
    def show 
    @video = Video.find(params[:id]) 
    @original_video = @video.panda_video 
    @h264_encoding = @original_video.encodings["h264"] 
    end 

    def new 
    @video = Video.new 
    end 

    def create 
    @video = Video.create!(video_params) 
    redirect_to :action => :show, :id => @video.id 
    end 

    private 
    def video_params 
    params.permit(:title, :panda_video_id) 
    end 
end 

видео/new.html.erb

<%= form_for @video do |f| %> 

    <!-- field where the video ID will be stored after the upload --> 
    <input id="panda_video_id" type="hidden" name="panda_video_id"/> 

    <label>Title</label> 
    <input type="text" name='title' placeholder="Give a title"> 

    <!-- upload progress bar (optional) --> 
    <div class='progress'><span id="progress-bar" class='bar'></span></div> 

    <!-- file selector --> 
    <div id="browse">Choose file</div> 

<% end %> 

<script> 
    var upl = panda.uploader.init({ 
     'buttonId': 'browse', 
     'progressBarId': 'progress-bar', 
     'onQueue': function(files) { 
      $.each(files, function(i, file) { 
       upl.setPayload(file, {'csrf': "<%= form_authenticity_token %>"}); 
      }) 
     }, 
     'onSuccess': function(file, data) { 
      $("#panda_video_id").val(data.id) 
     }, 
     'onComplete': function(){ 
      $("#new_video").submit(); 
     } 
    }); 
</script>