gpt4 book ai didi

ruby-on-rails - 在模型中生成图像 URL - ActiveStorage

转载 作者:行者123 更新时间:2023-12-04 03:00:36 25 4
gpt4 key购买 nike

我有一个使用 ActiveStorage (Rails 5.2.0.rc2) 的简单模型,模型如下所示:

class Vacancy < ApplicationRecord
has_one_attached :image

validates_presence_of :title

def to_builder
Jbuilder.new do |vacancy|
vacancy.call(self, :id, :title, :description, :created_at, :updated_at)
vacancy.image do
vacancy.url image.attached? ? Rails.application.routes.url_helpers.url_for(image) : nil
end
end
end
end

然后在 to_builder我想显示图像的永久 URL 的方法,我正在尝试使用 Rails.application.routes.url_helpers.url_for(image)正如 rails 指南( http://edgeguides.rubyonrails.org/active_storage_overview.html#linking-to-files )中所建议的那样,但会引发此错误:
Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true
在我的应用程序中,我已经有了 default_url_options[:host]设置但它不起作用,甚至写 url_for(image, host: 'www.example.com')url_for(image, only_path: true)也不起作用,因为它引发了另一个错误: wrong number of arguments (given 2, expected 1)
使用 activestorage 在模型范围内显示永久 URL 的正确方法是什么?

最佳答案

使用方法rails_blob_path用于模型和 Controller 中的附件

例如,如果您需要在模型中创建一个方法(例如 cover_url ),首先您应该包含 url_helpers及使用后方法rails_blob_path带有一些参数。你可以在任何 Controller 、 worker 等中做同样的事情。

完整示例如下:

class Event < ApplicationRecord

include Rails.application.routes.url_helpers

def cover_url
rails_blob_path(self.cover, disposition: "attachment", only_path: true)
end

end

关于ruby-on-rails - 在模型中生成图像 URL - ActiveStorage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49542881/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com