2017-08-08 72 views
0

我想使用CarrierWave gem將我上傳圖片的完整網址保存在Rails應用中。我在創建操作之後更新條目,但不起作用。然而,當我把我的變量,完整的URL顯示,但它不僅節省了標識...Rails Carrierwave:無法使用after_action方法保存完整的網址

卡控制器,after_action方法:

class CardsController < ApplicationController 
    before_action :set_card, only: [:show, :edit, :update, :destroy] 
    after_action :save_full_image_url, only: [:create, :update] 

    include Shortener 
    require 'carrierwave/orm/activerecord' 

    def save_full_image_url 
    c = @card 
    puts "URL: "+c.image_url.url 

    @card.update(image_url: c.image_url.url) 

    Rails.logger.info(@card.errors.inspect) 
    end 

我的顯卡型號:

class Card < ApplicationRecord 
    validates :cta_button_url, :format => URI::regexp(%w(http https)), presence: { message: '%{value} : please enter valid url' } 
    validates :title, :subtitle, :cta_button_text, :cta_button_url, :presence => true 
    mount_uploader :image_url, ImageUploader 
    has_one :short_url 
end 

我完全日誌:

SQL(0.3ms的)INSERT INTO 「卡」( 「letter_id」, 「標題」, 「副標題」, 「IMA VALUES(?,?,?,?,?,?,?)[[「letter_id」,49],[「title」, 「fsddssd」 ],[「subtitle」,「fsdfsdfsd」],[「image_url」,「10298593.jpg」], [「cta_button_text」,「Visit site」],[「cta_button_url」, 「http://www.testurl.com」],[「share_button 「,」t「]](1.1ms)提交 交易(0.1ms)開始交易卡片加載(0.2ms)選擇 」cards「。* FROM」cards「WHERE」cards「。」id「=?限制? [[「id」,44], [「LIMIT」,1]] SQL(0.4ms)INSERT INTO「short_urls」(「card_id」, 「token」,「created_at」,「updated_at」)VALUES [「card_id」, 44],[「token」,「PmK5vnuCU9Dczz995fz8Ddbf」],[「created_at」,「2017-08-08 21:08:57.625325」],[「updated_at」 ,「2017-08-08 21:08:57.625325」]]
(0.8ms)提交事務信函加載(0.2ms)選擇「字母」* FROM「letters」WHERE「letters」。「id」=?限制? [[「id」,49], [「LIMIT」,1]](0.1ms)begin transaction CoreBot Load(0.2ms) SELECT「core_bots」。* FROM「core_bots」WHERE「core_bots」。「id」= ? LIMIT? [ 「身份證」,1],[ 「限制」,1](0.1毫秒)提交事務 重定向到URL http://localhost:3000/dashboard/testhttp://localhost:3000/uploads/card/image_url/44/10298593.jpg
(0.1毫秒)開始交易SQL(0.4ms)UPDATE 「卡」 SET 「image_url」=? WHERE「cards」。「id」=? [[ 「IMAGE_URL」, 「10298593.jpg」],[ 「ID」,44]](爲2.5ms)提交事務

「10298593.jpg」,cta_button_text: 「訪問點」,cta_button_url: 「http://www.testurl.com」,share_button:真>,@消息= {}, @details = {}>已完成302在60ms的實測值(ActiveRecord的:7.2ms)

在我登錄控制檯「c.image_url。 url「我得到完整的URL(http://localhost:3000/uploads/card/image_url/44/10298593.jpg),但是當我更新我的入口時,它只保存結束(10298593.jpg)。

任何想法,爲什麼我不能保存整個網址,即使我可以在變量之前獲得它?

+0

你得到的錯誤是什麼? –

+0

我沒有收到任何錯誤,但不是[「image_url」,「10298593.jpg」]應該是[「image_url」,「http:// localhost:3000/uploads/card/image_url/44/10298593。 JPG「] – AlphaNico

回答

0

問題解決了!這個問題是從mount_uploader :image_url, ImageUploader

我創建了一個「remote_image_url」,並用完整的url進行了更新。現在它工作了!

相關問題