식별자가 아니라 데이터베이스에 carrierwave로 업로드 한 이미지의 전체 URL을 저장하려고합니다. 저장하기 전에 이미지 URL을 사용할 수 있지만 저장시 식별자 만 데이터베이스에 나타납니다. 나는 호스트와 엔드 포인트를 asset_host뿐 아니라 Carrierwave.rb 구성으로 설정했습니다. 아래를 참조하십시오 :Carrierwave + Fog + S3 + Rails 데이터베이스의 전체 URL을 저장할 수 없습니다.
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가 많이 수행되지 않는 것 같습니다. 전체 URL이 저장되는지 확인하는 다른 방법이 있습니까?
감사합니다.
정보를 제공해 주셔서 감사합니다. 기능에 대한 추론을 이해하고 있지만 데이터베이스 관점에서 모든 상호 작용에 대해 Carrierwave에 의존하고 미래에 다른 솔루션을 사용할 수있는 유연성과 자유를 유지하고 데이터베이스와 직접 상호 작용하거나 필요에 따라 데이터 가져 오기/내보내기. 이 문제에 대한 해결책이 있습니까? 사전에 감사합니다 – user4889724
충분히 공정하게. 나는 여기서 구체적인 내용에 익숙하지 않다. (안개 자체에 대한 더 넓은 이슈보다는 캐리어 웨이브에 더 익숙하다.) 나는 당신이 아마 뭔가를 할 수 있다고 생각 : ''' before_save 할 self.full_url = self.url 끝 ''' 그리고 확인 full_url (그리고 아마도 열로 URL을 정의 된 열을 만드는 것 충분히, 나는 레일을 많이 사용하지 않는다). 어쨌든 저장 시간에 메서드에서 열 값을 설정하면 아마도 원하는 것을 얻을 수 있다고 생각합니다. – geemus