在rails网站上传视频

时间:2017-05-16 02:32:18

标签: ruby-on-rails video devise ffmpeg paperclip

我想让我的用户在我的网站上上传视频(尚未部署,在本地测试)。我设置的方式是,如果“用户信息”被保存,它将把它们带到“root_path”,这是主页。如果未保存用户信息,则会再次呈现表单。在我添加视频上传功能之前,所有信息都已保存,一切运行良好,但在添加功能后,由于信息未被保存,它会一遍又一遍地渲染相同的表单。我该如何检查出错了什么?命令行给出了这个错误:Error screenshot

用户信息表格部分: `

<%= simple_form_for @userinfo do |f| %>
  <%= f.input :name, label: 'Full name', error: 'Full name is mandatory' %>
  <%= f.input :username, label: 'Username', error: 'Username is mandatory, please specify one' %>
  <%= f.input :school, label: 'Name of college' %>
  <%= f.input :gpa, label: 'Enter GPA' %>
  <%= f.input :email, label: 'Enter email address' %>
  <%= f.input :number, label: 'Phone number' %>
  <%= f.file_field :video %>
  <%= f.button :submit %>
<% end %>

`

我的用户控制器(这是用户信息控制器,不控制用户电子邮件和密码。我正在使用设计宝石进行用户登录,注销和注册):`

class UsersController < ApplicationController
    def index
    end

    def show
    end

    def new
        @userinfo = User.new
    end

    def create
        @userinfo = User.new(user_params)
        if @userinfo.save
          redirect_to root_path
        else
          render 'new'
        end
    end

    def edit
    end

    def update
    end

    def destroy
    end

    private
        def user_params
            params.require(:user).permit(:name, :username, :email, :number, :school, :gpa, :major, :video)
        end
end

`

这是用户模型(usermain是与用户密码和电子邮件相关的模型。用户模型中的用户信息属于usermain):`

class User < ActiveRecord::Base
    belongs_to :usermain

    has_attached_file :video, styles: {:video_show => {:geometry => "640x480",:format => 'mp4'},:video_index => { :geometry => "160x120", :format => 'jpeg', :time => 10}}, :processors => [:transcoder]
    validates_attachment_content_type :video, content_type: /\Avideo\/.*\Z/
end

`

这是创建用户信息表的迁移文件:`

class CreateUsers < ActiveRecord::Migration
  def change
    create_table :users do |t|
      t.string :name
      t.string :username
      t.string :email
      t.string :number
      t.string :school
      t.string :gpa
      t.string :major

      t.timestamps null: false
    end
  end
end

This is adding the "video" field to the above created user information table:

class AddAttachmentVideoToUsers < ActiveRecord::Migration
  def self.up
    change_table :users do |t|
      t.attachment :video
    end
  end

  def self.down
    remove_attachment :users, :video
  end
end

`

我还安装了paperclip和ffmpeg。当我说安装时,它确实就是这样。我不确定是否必须以任何方式操纵paperclip或ffmpeg以使其与视频一起使用,我刚刚安装并且没有对它们做任何其他事情。过去两天我一直在拔头发。任何帮助表示赞赏。

0 个答案:

没有答案