Недопустимые параметры: видео при загрузке видео [скрепка] - PullRequest
0 голосов
/ 01 февраля 2019

Я получил Unpermitted parameter: video сегодня, моя модель:

class Video < ActiveRecord::Base
  # Extends

  # Includes

  # Associations
  belongs_to :videoable, polymorphic: true

  has_attached_file :video
  validates_attachment_content_type :video, content_type: /\Avideo\/.*\Z/
  validates_attachment_file_name :video, :matches => [/3gp\Z/, /mp4\Z/, /flv\Z/]
end
class Campaign < ActiveRecord::Base
   has_many :videos, as: :videoable

  # accepts_nested_attributes
  accepts_nested_attributes_for :videos
end

контроллер:

params.require(:campaign).permit(videos_attributes: [:video, :video_file_name, :id, :_destroy])

вид:

= f.simple_fields_for :videos, Video.new do |v|
       = v.file_field :video, multiple: true
= f.simple_fields_for :videos do |v|
       = video_tag(v.object.video.url, controls: true, size: "148x148") if v.object.video?
       br
       .form-inline
          = v.check_box :_destroy, class: 'form-control'
              | Delete

нетконечно, что я пропустил в этом случае, я попытался Google, но результат совпадает с моей настройкой, оцените все ваши предложения, спасибо Я использую скрепку для поддержки загрузки файла

запрос параметров:

"videos_attributes"=>{"0"=>{"video"=>[#<ActionDispatch::Http::UploadedFile:0x007f5bcfad6f88 @tempfile=#<Tempfile:/tmp/RackMultipart20190201-6213-waz9el.mp4>, @original_filename="facebook_user_link.mp4", @content_type="video/mp4", @headers="Content-Disposition: form-data; name=\"campaign[videos_attributes][0][video][]\"; filename=\"facebook_user_link.mp4\"\r\nContent-Type: video/mp4\r\n">], "_destroy"=>"0"}}

1 Ответ

0 голосов
/ 01 февраля 2019

Наконец, я нашел проблему, в представлении, которое я установил: = v.file_field :video, multiple: true
, поэтому мне нужно установить параметры для видео следующим образом:
params.require(:campaign).permit(videos_attributes: [:video_file_name, :id, :_destroy, video: []])
, тогда процесс загрузки будет работать правильно.

...