ruby-on-rails - Rails:无法显示附加到另一个变量的唯一图像
问题描述
我正在创建一个可以浏览艺术家、专辑和歌曲的网站。当我进入艺术家的展示页面时,我希望它显示他们的专辑和封面。如果我只使用文件名,我可以让我的网页显示我想要的图像,但我希望为每个艺术家的专辑显示一个唯一的图像,而不是每个专辑都显示相同的图像。
专辑.rb
class Album < ApplicationRecord
has_one_attached :artwork
belongs_to :artist
has_many :songs
end
种子.rb
lz = Album.create( title: "Led Zeppelin", release_date: 1969, artist_id: zepp.id, artwork: lz.jpg )
lzII = Album.create( title: "Led Zeppelin II", release_date: 1969, artist_id: zepp.id, artwork: lzII.jpg )
lzIII = Album.create( title: "Led Zeppelin III", release_date: 1970, artist_id: zepp.id, artwork: lzIII.jpg )
lzIV = Album.create( title: "Led Zeppelin IV", release_date: 1971, artist_id: zepp.id, artwork: lzIV.jpg )
album.artwork.attach(params[:artwork])
我的艺术家/show.html.erb
<h1> <%= @artist.name %> </h1>
<% @artist.albums.each do |album| %>
<%= image_tag (album.artwork) %>
<p> <%= link_to album.title, album_path(album) %> </p>
<% end %>
我收到一个错误(无法将图像解析为 URL:未定义的方法 `persisted?')
我播种的方式有问题吗?我的 .jpgs 在我的 assest/images 文件夹中有与专辑实例相同的标题。
如果我像这样添加 image_url
<% @artist.albums.each do |album| %>
<%= image_tag image_url(album.artwork) %>
<p> <%= link_to album.title, album_path(album) %> </p>
<% end %>
我明白了(资产管道中不存在资产“”。)
编辑
只是想运行rails db:seed
我可能忘记这样做并得到一个错误(未定义的方法分配.jpg)。看起来它不喜欢我尝试将专辑连接到艺术品并尝试调用 jpg 方法而不是将其作为文件类型读取的方式。
解决方案
推荐阅读
- python - 如何通过用户 URL 下载 .apk 并通过 python 从中获取元数据
- vulkan - Vulkan 设备丢失 = 缺少同步,但我不知道怎么做
- python - Shapely / Pyproj 查找从纬度和经度创建的多边形的面积(以 m^2 为单位)
- android - 在 Mixpanel 上跟踪推荐链接转换
- react-native - React Native 和 react-native-ble-plx
- android - 以编程方式设置属性格式颜色android
- google-docs - 从 Google Doc 中获取值
- plot - 绘制最小二乘法
- arduino - 在Arduino中通过串行控制伺服
- amazon-web-services - 如果架构保持不变,是否需要更新分区,但添加了新数据