小编Don*_*edo的帖子

如何在rails中使用ActiveStorage正确进行模型测试?

我刚刚转向在rails 5.1.4上使用ActiveStorage而且我是TDD的新手并且正在努力弄清楚如何测试模型 has_one_attached :avatar

require 'rails_helper'

RSpec.describe User, :type => :model do

  let (:valid_user) { FactoryBot.build(:user) }
  describe "Upload avatar" do
    context "with a valid image" do      
      it "saves the image" do
        valid_user.save!        
        saved_file = valid_user.avatar.attach(io: File.open("/home/ubuntu/workspace/spec/fixtures/files/avatar.jpg"), filename: "face.jpg", content_type: "image/jpg")
        expect(saved_file).to be_an_instance_of(ActiveStorage::Attachment::One)
      end
    end
  end 

end
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

Failures:

  1) User Upload avatar with a valid image saves the image
     Failure/Error:
       saved_file = valid_user.avatar.attach(io: File.open("/home/ubuntu/workspace/spec/fixtures/files/avatar.jpg"), filename: "face.jpg", 
                                             content_type: "image/jpg")


 NoMethodError:
   undefined method `upload' for nil:NilClass
   Did you mean?  load
 # …
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails rails-activestorage

24
推荐指数
4
解决办法
6345
查看次数

什么是相当于*= require_self和*= require_tree的SASS.

我正在尝试解决我的Rails 4 + Spree应用程序中的问题,并且帖子建议我将我的all.css文件转换为all.scss(sass).

我该如何转换?

*= require spree/frontend
*= require_self
*= require_tree .
Run Code Online (Sandbox Code Playgroud)

到@imports?

我做了

@import "spree/frontend";
Run Code Online (Sandbox Code Playgroud)

这是非常简单的,但现在我的应用程序"没有样式",我很肯定这是因为其他两个指令.

谢谢!

ruby-on-rails sass spree

13
推荐指数
1
解决办法
4359
查看次数

RAB 4在HABTM协会上的范围

我是一个铁杆新手,我在HABTM协会上创建了一个范围,但我仍然认为它看起来不自然,不优雅,所以我认为必须有一个更好的方法.任何人都可以告诉我,如果有更好的方法吗?我见过其他帖子,人们有同样的问题(自我加入HABTM协会的范围)没有回答......

class User < ActiveRecord::Base
  has_and_belongs_to_many :roles, :join_table => :users_roles
end

class Role < ActiveRecord::Base
  has_and_belongs_to_many :users, :join_table => :users_roles
end

scope :by_role, lambda { |role_name| joins('join users_roles on users.id = users_roles.user_id').
                                    joins('join roles on users_roles.role_id = roles.id').
                                    where('roles.name = ?', role_name) }
Run Code Online (Sandbox Code Playgroud)

scope ruby-on-rails has-and-belongs-to-many

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

如何在Perl的CAM :: PDF中使用PDF 1.6文档?

我正在使用CAM::PDFPDF文档遇到一些问题%PDF-1.6

有没有办法将它们转换为1.3?(最好是一种免费的批处理方式......)

我目前正在做的是使用免费的PDF995打印文件.生成的PDF文件是%PDF-1.3.但是,转换大量文档需要我永远.

pdf perl

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

如何解决从Win32上传到PAUSE(CPAN)的模块的"世界可写"问题?

当我将模块上传到PAUSE时,是否有人知道如何从PAUSE获取"世界可写"失败消息?

我把它打包make dist在Windows上.我在工作时无法访问Linux机器,我需要在Windows上进行操作.

perl cpan

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

Android.mk 以包含预构建库

我正在努力获取一个在 Android 上编译的模块。它引用了一个已经存在的共享库——我只有 .so 和 .h 文件。

我当前的 Android.mk 如下所示:

LOCAL_PATH:= $(call my-dir)
EXEC_ARCH := armeabi-v7a    

local_vendorlib_c_includes := $(LOCAL_PATH)/VENDORLIB/include

# VENDORLIBWrapper library
include $(CLEAR_VARS)

LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_SRC_FILES := mylib.cpp
LOCAL_MODULE:= libvendorwrapper
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/soundfx
LOCAL_LDLIBS := -L$(LOCAL_PATH)/DPS/$(EXEC_ARCH)/
LOCAL_C_INCLUDES := \
    $(call include-path-for, graphics corecg) \
    $(call include-path-for, audio-effects) \
    $(local_dps_c_includes)

LOCAL_CPPFLAGS += -O2 -Wno-unused-parameter
#--verbose

LOCAL_SHARED_LIBRARIES := \
    libcutils \
    libdl \
    libVendorLib
#LOCAL_PREBUILT_LIBS += libVendorLib
LOCAL_REQUIRED_MODULES := libVendorLib

include $(BUILD_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE_CLASS := SHARED_LIBRARIES …
Run Code Online (Sandbox Code Playgroud)

android android-ndk android.mk

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

我应该如何访问Perl子类中的实例数据?

我正在扩展一个模块,我想要一些关于良好实践的技巧.特别是命名空间冲突:它们究竟是什么以及如何避免它们.

扩展时,我是否应该访问SUPER类中的变量并仅通过访问器或对象方法更改其状态?如果没有(或有限)访问者怎么办?我是否"允许"直接访问这些对象变量?

干杯!

perl

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