视图中的错误:资产管道中不存在资产"ABCD"



我正在从carrierwave迁移到活动存储,因此我在模型中添加了以下更改以及本文档中提到的InstallationConfiguration更改

型号:

mount_uploader :file, PatientUploader
has_one_attached :file_new

我能够通过rake任务成功地测试更改,但现在我正试图通过上传pdf文件从UI进行测试。我也可以用视图更改来测试更改,但稍后我将删除mount_uploader更改(所有carrierwave更改(,所以我必须更新视图,因此我尝试了以下视图更改。

我更新了视图中的以下行来自

= link_to patient.name, patient.file_url, target: "_blank", class: 'external'

= link_to image_tag(patient.name), patient.file, target: "_blank", class: 'external'

但是我得到了错误The asset "ABCD" is not present in the asset pipeline.

我并没有在项目的任何地方设置config.assets.compile,因为我在一些堆栈线程上看到这不是一个好的做法。

我想知道为什么我在更新视图后会出现这个错误,以及我该如何修复它?

感谢

您给image_tag的是patient.name,但image_tag需要一个可行的source:

源可以是完整路径、文件或活动存储附件。

如果patient.file是活动存储附件:

link_to edit_patient_path(patient), target: "_blank", class: 'external' do
image_tag(patient.file)

我输入edit_patient_path(patient)作为链接的url,因为我不知道你想让这个链接带用户点击到哪里。

似乎在旧链接中,您使用patient.name作为链接的主体,而url指向patient.file_url

在新的链接中,你似乎希望身体是图像,但你想把它们带到的URL对我来说不清楚。


此外,您可以查看link_to,以更好地了解以什么顺序传递什么作为变量:

link_to(名称=零,选项=零,html_options=零,&block(

注意,因为image_tag()很复杂,所以link_to()应该成为一个块来保持清晰。

最新更新