Я новичок в rails, и я пытаюсь использовать gem-файл carrierwave для загрузки файлов в мою систему.Я сделал все шаги, но боролся с тем, как его кодировать, чтобы я мог просматривать его в своей системе без ошибок.
Ранее я пытался добавить
show.html.erb:
<%= attachment_tag @post.attachment.url, class: "post-show" %>
, но получаю ошибку
"undefined method `attachment_tag' for #<#<Class:0xb646078>:0xb8bb8b0>"
posts.rb:
class Post < ActiveRecord::Base
mount_uploader :attachment, AttachmentUploader
end
new.html.erb:
<%= f.label :attachment %><br>
<%= f.file_field :attachment %>
show.html.erb:
<%= attachment_tag @post.attachment.url, class: "post-show" %>
/uploaders/video_uploader.rb
class VideoUploader < CarrierWave::Uploader::Base
storage :file
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
end
posts_controller:
def post_params
params.require(:post).permit(:post_id, :title, :body, :date, :image, :remove_image, :video, :attachment)
end
Я ожидаю, что результатом этого будет отображение файла, независимо от того, является ли онPDF, PPT или Word документа.
РЕДАКТИРОВАТЬ:
<iframe src="@post.attachment.url"></iframe>
Это было добавлено в show.html.erb вместо тега вложения.Я больше не получаю сообщение об ошибке, но отображается следующее:
отображается в системе после добавления кода