我在我的Rails 6.0网站上添加了一个博客。
我已经安装了Action Text并将Active Storage链接到Cloudinary
然后我创建了一个有照片的文章模型。
class Article < ApplicationRecord
has_one_attached :photo
has_rich_text :rich_body
validates :title, uniqueness: true
validates :lead, presence: true
validates :rich_body, presence: true
end
在Articles/new.html.erb中,我为“rich_body”添加了Trix WYSIWYG编辑器。
<div class="container">
<%= simple_form_for(@article) do |f| %>
<div class="form-inputs">
<%= f.input :title %>
<%= f.input :lead %>
<%= f.input :photo, as: :file %>
<%= f.input :caption %>
</div>
<div class="form-inputs">
<%= f.rich_text_area :rich_body %>
</div>
<div class="form-actions">
<%= f.button :submit, class: "btn btn-primary" %>
</div>
<% end %>
</div>
我设法创建博客文章中的图像是通过上传“照片”领域。
现在我想在rich_body中添加图像。我看着this article这样做。我用“附加文件”(see screenshot of thsi button)附加它们。它显示在编辑器中(see screenshot)
当我点击保存时,文章就创建了。但只剩下“富体”的文本。没有附加图像。如果我看“params”,没有图像的痕迹。
=> <ActionController::Parameters {"utf8"=>"✓", "authenticity_token"=>"DDGTxfT/aSoY5I5FNMrzv+hJ+seNlce0sJufFBREfUBlETeLGjejbnoxq2jhyzwGcZe1UAbCJbozi1O4vH5GyQ==", "article"=><ActionController::Parameters {"title"=>"Post title", "lead"=>"Summary or the post", "photo"=>#<ActionDispatch::Http::UploadedFile:0x00008b18957b5az8 @tempfile=#<Tempfile:/tmp/RackMultipart20210122-9530-1nu0w1w.jpg>, @original_filename="tools.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"article[photo]\"; filename=\"tools.jpg\"\r\nContent-Type: image/jpeg\r\n">, "caption"=>"This is the caption of the photo", "rich_body"=>"<div>Some text. The attached image is below.<br><br>The attached image is above<br><br></div>"} permitted: false>, "commit"=>"Créer un(e) Article", "controller"=>"articles", "action"=>"create"} permitted: false>
知道我错过了什么吗
非常感谢您的帮助。
格雷戈里
3条答案
按热度按时间dfddblmv1#
你在用
ActiveStorage
吗?应该已经运行命令来创建必要的表:
检查以确保有两个表
active_storage_blobs
和active_storage_attachments
。8aqjt8rx2#
我知道这是旧的,但有一个类似的问题,这可能与CORS的S3桶。https://github.com/rails/rails/issues/36982#issuecomment-636330624
我也遇到了同样的问题。
xriantvc3#
为了解决这个问题,我必须更新blob视图
这样,指向本地URL的图像将指向cloudinary