当前位置: 首页 > 知识库问答 >
问题:

Rails CarrierBo:无法用after_action方法保存完整的url

蔺劲
2023-03-14

我想使用CarrierWave gem将我上传的图像的完整url保存在rails应用程序中。我在创建操作后更新条目,但它不起作用。然而,当我输入变量时,会出现完整的url,但它只保存标识符…

卡控制器,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)插入“卡片”(“letter_id”、“title”、“substitle”,“image_url”、“cta_button_text”、“acta_button _url“、“share_button”)值(?、?、??、?)[[“letter_id”,49],[“title”,“fsddssd”],[”副标题“,”fsdfsdfsd“],“image_url”,“10298593.jpg”],“cta_button_text”,“访问网站”,[”cta_button_url“,”http://www.testurl.com“],[”share_button“,”t“]](1.1ms)提交事务(0.1ms)开始事务卡加载(0.2ms)选择“卡”。*从“卡”WHERE“卡”“。”id“=?LIMIT?[[”id“,44],[“LIMIT”,1]]SQL(0.4ms)插入“short_urls”(“Card_id”,“token”,“created_at”,“updated_at“)值([[“card_id”,44],[“token”,“PmK5vnuCU9Dczz995fz8Ddbf”],“created_at”,“2017-08-08 21:08:57.625325”],[”updated_at“,”2017-08-018 21:08-57.62525“]]
(0.8ms)提交事务Letter Load(0.2ms)SELECT“letters”。*从“字母”到“字母”。“id”=?限制?[[“id”,49],[“LIMIT”,1]](0.1ms)开始事务CoreBot加载(0.2ms)SELECT“core_bot”。*来自“core_bots”WHERE“core\obots”。“id”=?限制?[[“id”,1],[“LIMIT”,1]](0.1ms)提交事务重定向至http://localhost:3000/dashboard/test网址:http://localhost:3000/uploads/card/image_url/44/10298593.jpg
(0.1ms)开始事务SQL(0.4ms)UPDATE“cards”SET“image_url”=?“卡”的位置。“id”=?[[“image_url”,“10298593.jpg”],[“id”,44]](2.5ms)提交事务

“10298593.jpg”,cta_button_text:“访问网站”,cta _ button_url:“http://www.testurl.com“,共享按钮:true

当我登录控制台c.image_url.url时,我得到了完整的URL(http://localhost:3000/uploads/card/image_url/44/10298593.jpg),但当我更新我的条目时,它只保存结尾(10298593.jpg)。

知道为什么我不能保存整个url,即使我以前可以在一个变量中得到它吗?

共有1个答案

寇开畅
2023-03-14

问题解决了!问题来自< code>mount_uploader :image_url,ImageUploader

我创建了一个“remote_image_url”,并用完整的网址更新了它。现在它工作了!

 类似资料:
  • 问题内容: 我正在建立一个Drupal网站,其中包含许多将使用jQuery / ajax发布的用户特定信息。它自身的信息不是很敏感,仅重要的是验证表单数据是否已被诸如Firebug之类的工具篡改,并确保确实已从指定用户请求该信息。换句话说,我正在尝试找出用ajax发布时保护数据完整性和真实性的最佳方法。 理想情况下,我想使用一些众所周知的消息身份验证系统,例如HMAC算法。但是,由于它包含对称密钥

  • 我正对着< code > org . Apache . poi . open XML 4j . exceptions . open XML 4 jruntimeexception:保存失败:保存包时出错:无法用marshaller在流中保存零件/docProps/app.xml 在每个测试场景执行完成后,尝试将每个测试场景结果(通过或失败)写入Excel表(.xlsx)时出现异常。为此,我编写了以

  • Jsoup库未解析给定URL的完整html。URL的原始html中缺少一些分区。 有趣的事情:http://facebook.com/search.php?init=s:email&q=somebody@gmail.com&type=users 如果您在jsoup的官方站点http://try.jsoup.org/中给出了上面提到的url,它通过提取正确地显示了url的确切html,但是在使用js

  • 问题内容: 有什么方法可以使用WebDriver保存完整的网页吗? 当前,我执行getPageSource(),然后将所有内容放入html本地文件中,但是保存的页面的形状不好(奇怪的字符,没有图像,所有元素向下偏移) 请参阅以下我使用的代码: 有人可以建议我使用WebDriver在Firefox中保存完整网页的方法吗?例如自动? 问题答案: 奇怪的字符可能与写入文件的编码有关。 其他问题可能与以下

  • 我试图对模型的对象调用方法来更新数据库中的特定资源,但当我在api url上发送POST请求时,会出现此错误 方法照明\数据库\雄辩\集合::保存不存在。 我也尝试调用方法,但同样的错误。 编辑代码: 第一行返回响应和正确响应。 和 我还试图调用或方法来删除资源,但它也会给出相同的错误 BadMethodCallException:方法Illumb\Database\Eloquent\Collec