小编Low*_*der的帖子

Rails 5 - Active Storage - Variant - 异常:"#<MiniMagick ::错误:`mogrify -resize-to-fit [800,800]"

Rails 5.2.0(作为API)

/config/application.rb

config.active_storage.variant_processor =:vips

问题:

/serializers/api/v1/user/current_user_serializer.rb

class Api::V1::User::CurrentUserSerializer < Api::V1::User::BaseSerializer
  include Rails.application.routes.url_helpers

  attributes(
    [...]
    :avatar
    :created_at
  )

  def avatar
    if object.avatar.attachment
      avatar = {
        image: url_for( object.avatar ), # This one works
        thumb: url_for( object.avatar.variant(resize_to_fit: [800, 800]) ), # EXCEPTION
        thumb_test: url_for( object.avatar.variant(resize: '800x800') ) # Returns image of size: 640x800 (expected 800x800)
      }
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

我得到以下异常:

exception: "<MiniMagick::Error: `mogrify -resize-to-fit [800, 800] /tmp/mini_magick20180625-19749-rghjbg.jpg` failed with error: mogrify.im6: unrecognized option `-resize-to-fit' @ error/mogrify.c/MogrifyImageCommand/5519. >"
Run Code Online (Sandbox Code Playgroud)

编辑

谢谢@George Claghorn

我现在根据这篇文章创建了自己的变体: …

ruby-on-rails rails-activestorage ruby-on-rails-5.2

4
推荐指数
1
解决办法
2066
查看次数

Ruby on Rails:如何使用link_to添加"aria-hidden ='true'"

我怎么能用rails语法写这个呢?

<a href="/" class="glyphicon glyphicon-fire logo" aria-hidden="true" ></a>
Run Code Online (Sandbox Code Playgroud)

可能它是这样的:

<%= link_to '', root_path, class: 'glyphicon glyphicon-fire logo', **???** %>
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails css3 ruby-on-rails-4

3
推荐指数
1
解决办法
1567
查看次数

Rails 5.1 Webpacker –通过yarn添加了moment.js –如何在旧资产JS中使用包

我是webpacker和yarn的新手。我使用以下命令成功安装了该软件包:

加纱力矩

编辑2:

这是我的进口

# app/javascript/packs/application.js
import moment from 'moment/moment'
import 'moment/locale/de-ch'
Run Code Online (Sandbox Code Playgroud)

问题:我不能在旧的JS资产文件中使用“ moment”包

首先起作用,其他不起作用:

# in: app/javascript/packs/application.js
console.log('Log: ' + moment([2007, 0, 29]).toNow()) #=> Log: in 10 Jahren

# in app/*assets*/javascripts/application.js
console.log('Log2: ' + moment([2007, 0, 29]).toNow()) #=> Uncaught ReferenceError: moment is not defined
Run Code Online (Sandbox Code Playgroud)

编辑1:

这里是webpacker安装过程的关键点:

  1. 在gemfile:gem'webpacker',github:'rails / webpacker'中
  2. 将此行添加到assets.rb:Rails.application.config.assets.paths << Rails.root.join('node_modules')
  3. 在application.html.haml的%head中添加:= javascript_pack_tag'application'
  4. 重新启动Rails服务器并启动webpacker

注意:我将我的应用程序从Rails 4.2升级到5.0,然后又升级到5.1。也许我的应用程序中缺少某些东西

javascript ruby-on-rails webpacker

0
推荐指数
1
解决办法
1296
查看次数