我正在开发一个Rails应用程序,使用Rails 5.2和Ruby 2.3.7,并希望使用Active Storage将图像附加到我的事件对象上。
以下是我所采取的主要步骤:
在config/environments/development.rb文件中,我确认了:config.active_storage.service = :local
在event.rb文件中,我添加了以下行: has_one_attached :event_image 在events_controller.rb文件中,我已经在event_params中列入了:event_image属性白名单。
在events/_form.html.erb文件中,我设置了一个form_for以上传图像。
错误:无法将图像解析为URL:未定义`attachment_url`方法的:0x00007fca5dcef8b8
(注:这是一个IT技术中的错误提示信息,可能与代码或软件开发相关)
以下是我所采取的主要步骤:
在config/environments/development.rb文件中,我确认了:config.active_storage.service = :local
在event.rb文件中,我添加了以下行: has_one_attached :event_image 在events_controller.rb文件中,我已经在event_params中列入了:event_image属性白名单。
在events/_form.html.erb文件中,我设置了一个form_for以上传图像。
<%= f.label :event_images %>
<%= f.file_field :event_image %>
我尝试使用以下方法显示图片:
events/index.html.erb
<% if event.event_image.attached? %>
<%= image_tag event.event_image %>
<% end %>
错误:无法将图像解析为URL:未定义`attachment_url`方法的:0x00007fca5dcef8b8
(注:这是一个IT技术中的错误提示信息,可能与代码或软件开发相关)
<% if event.event_image.attached? %>
<%= image_tag url_for(event.event_image) %>
<% end %>
错误: 未定义方法 `attachment_path' for Class:0x00007fca5e0109c0>:0x00007fca5dacefe8>
我确认我的数据库中存在active_storage_attachments和active_storage_blobs,并且附件已保存在其中
非常感谢您的任何建议。从我所有的谷歌搜索来看,这应该可以工作
config/environments/development.rb
文件中是否有这一行代码:config.default_url_options = { host: "localhost:3000" }
? - Zoran Majstorovicimage_tag
。它是一个帮助程序,旨在通过资产管道提供图像。相反,只需手动创建标签<img src="<%= url_for(event.event_image) %>">
或tag :img, src: url_for(event.event_image)
。 - max