微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

未创建帖子,无法加载图像轨道上的红宝石

如何解决未创建帖子,无法加载图像轨道上的红宝石

有人可以帮忙吗?试图在帖子中添加图片,但帖子没有创建。 错误:无法将图像解析为 URL:to_model 委托给附件,但附件为零。

问题显示在这一行:

 <%= image_tag post.image,class: 'main-image' %>

我有这个表格:

<%= form_for Post.new do |f| %>
  <div class="form-group">
    <%= f.text_field :description %>
  </div>
  <div class="form-group">
    <%= f.file_field :image %>
  </div>
  <div class="form-group">
    <%= f.text_field :user_id,value: current_user.id,class:'d-none'%>
  </div>
  <br>
  <div class="text-center">
    <%= f.submit 'Create Post',class: 'btn btn-primary' %>
  </div>
<% end %>

这在我的 html 文件

  <% @posts.each do |post| %>
  <section class="post">
  <div class="user">
    <div class="avatar">
      <img src="user_avatar.jpg">
    </div>
    <div class="username">
      <%= post.user.username %>
    </div>
  </div>

  <%= image_tag post.image,class: 'main-image' %>

  <div class="description">
    <%= post.description %>
  </div>
</section>
  <% end %>
</div>
  belongs_to :user
  has_one_attached :image


 validate :image_presence
   def image_presence
     errors.add(:image,"can't be blank") unless image.attached?
   end

end  
------
post.rb
class PostsController < ApplicationController

  def create
    Post.create(post_params)
    redirect_to root_path
  end

  private

  def post_params
    params.require(:post).permit(:description,:image,:user_id)
  end

end
------
post_controller
test:
  service: disk
  root: <%= Rails.root.join("tmp/storage") %>

local:
  service: disk
  root: <%= Rails.root.join("storage") %>
--------
storage.yml

在 development.rb 中有这个 config.active_storage.service = :local

解决方法

您需要将表单配置为多部分表单https://guides.rubyonrails.org/form_helpers.html#uploading-files

<%= form_for Post.new,multipart: true do |f| %>

如果表单不是多部分的,则不会发送文件。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。