我想使用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/test: http://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)。
任何想法,爲什麼我不能保存整個網址,即使我可以在變量之前獲得它?
你得到的錯誤是什麼? –
我沒有收到任何錯誤,但不是[「image_url」,「10298593.jpg」]應該是[「image_url」,「http:// localhost:3000/uploads/card/image_url/44/10298593。 JPG「] – AlphaNico