Мой поток действий контроллера равен new -> confirm -> create
Видео файл, загруженный с нового, может быть воспроизведен в режиме подтверждения.
Тем не менее, подтверждение приведет к установке значения nil при выполнении сохранения создания.
И наоборот, если вы создаете видео после загрузки в подтверждение, сохранение будет работать нормально.
Я думаю, что эта проблема возникает из-за скрытого поля.
Я думаю, что эта проблема возникает, потому что hidden_field не хранит значение должным образом (но консоль передает значение видео в качестве параметра)
confirm.html.erb
<% if @propertys.video? %>
<td><%= video_tag @propertys.video.url, autoplay: true, muted: true, controls: true , :size => "350x260"%></td>
<%= f.hidden_field :video, :value => @propertys.video %>
<% else %>
<td>abc</td>
<% end %>
new.html.erb
<td><%= f.label :内部ビデオ %></td>
<td><%= f.file_field :video, :multiple => false %></td>
Значения параметров можно проверить в консоли
Однако, если вы на самом деле поместите его в параметр Strong, он изменится на ноль.
Подтверждение видео в обычном режиме
Редактировать: код контроллера
def confirm
puts("======= confirm 侵入=======")
@propertys = Property.new(property_params)
#@property.video = params[:property][:video]
p @propertys
end
def create
puts("======= create ========")
@propertys = Property.new(property_params)
@propertys.user_id = current_user.id
p @propertys
p params[:property][:video]
puts("$$$$$$$$ create save$$$$$$$$")
#@property.video = params[:property][:video]
if @propertys.save
puts("good")
redirect_to list_propertys_path
else
puts("bad")
logger.debug @propertys.errors.inspect
redirect_to new_property_path
end
end
def property_params
params.require(:property).permit({image: []}, :video, :image_cache, :name, :rent, :subsidy, :reward, :region, :area, :extent, :longitude, :latitude)
end
videouploader.rb
class VideoUploader < CarrierWave::Uploader::Base
include CarrierWave::Video
storage :file
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
def extension_white_list
%w(ogg ogv 3gp mp4 m4v webm mov m2v 3g2)
end
end