1
我正在嘗試使用carrierwave在我的數據庫中上傳圖片的完整url,而不僅僅是標識符。保存圖像之前,我有可用的圖像URL,但只保存標識符顯示在數據庫中。我在Carrierwave.rb配置中設置了主機和端點,以及asset_host。見下:Carrierwave + fog + S3 + Rails無法在數據庫中保存完整的網址
CarrierWave.configure do |config|
config.fog_provider = 'fog/aws' # required
config.fog_credentials = {
provider: 'AWS', # required
aws_access_key_id: 'xxx', # required
aws_secret_access_key: 'yyy', # required
region: 'eu-west-1', # optional, defaults to 'us-east-1'
host: 's3.example.com', # optional, defaults to nil
endpoint: 'https://s3.example.com:8080' # optional, defaults to nil
}
config.fog_directory = 'name_of_directory' # required
config.fog_public = true # optional, defaults to true
config.asset_host = "https://s3.example.com:8080/name_of_directory"
end
在這種情況下,asset_host似乎沒有太大的作用。是否有另一種方式來確保完整的網址被保存?
謝謝!
非常感謝您的信息。雖然我理解功能背後的原因,但從數據庫的角度來看,我不希望依賴Carrierwave進行所有交互,並保持將來使用其他解決方案的靈活性和自由度,並且可以直接與數據庫進行交互,或者根據需要導入/導出數據。你有解決這個問題的辦法嗎?預先感謝您 – user4889724
不夠公平。我對這裏的細節不太熟悉(比起載波更廣泛的問題,更熟悉霧本身)。我想你也許可以這樣做: ''' before_save做 self.full_url = self.url 結束 ''' 並確保full_url是一個定義的列(甚至是創建網址爲一列會是足夠的,我也不使用鐵軌)。無論如何,我認爲從保存時間的方法中爲列設置一個值可能會讓你得到你想要的。 – geemus