小编Und*_*ion的帖子

正则表达式匹配Ruby中已知字符串后的1-3位数

我需要匹配以下字符串中的数字.它们可能是较长字符串的一部分,其中包含其他数字,因此我特别希望匹配在"错误代码"文本后面的空格后直接出现的数字:

Error Code 0  # Match = 0
Error Code 45 # Match = 45
Error Code 190 # Match = 190
Run Code Online (Sandbox Code Playgroud)

也可能:

Some Words 12 Error Code 67 Some Words 77 # Match = 67
Run Code Online (Sandbox Code Playgroud)

我正在使用,someString.match(regEx)[0]但我无法正确使用正则表达式.

ruby regex string numbers

4
推荐指数
2
解决办法
3万
查看次数

RSpec只能查看我的Lib目录的根目录中的类

RSpec(2.12.2)让我很难过.如果我想在我的一个规范中引用一个类,并且该类不在我的/lib目录的根目录中,则会抛出一个错误:

no such file to load -- test (LoadError)
Run Code Online (Sandbox Code Playgroud)

似乎我的规范可以嵌​​套在文件夹结构中,但是当我尝试并且需要一个嵌套文件夹中的类时(例如lib/workers/conversion_worker.rb),我得到了这个错误.

我在所有规范中都使用了'spec_helper',但即使对类路径进行硬编码也会导致同样的错误.

有了这个结构:

-lib/
  - class_found.rb
  - workers/
     - class_not_found.rb
Run Code Online (Sandbox Code Playgroud)

规范看起来像这样:

# spec/workers/class_not_found_spec.rb
require "spec_helper"
require "class_not_found"

describe ClassNotFound do    
  it "Does something"
end
Run Code Online (Sandbox Code Playgroud)

以下命令成功运行规范(-I标志添加$ LOAD_PATH的路径):

$ rspec spec/workers/class_not_found_spec.rb -I /Path/to/project/*
Run Code Online (Sandbox Code Playgroud)

因此,似乎RSpec没有在其路径下添加lib以下的任何内容.

我可以使用require_relative成功地要求class_not_found.rb:

require_relative "../../lib/workers/class_not_found.rb" #Succeeds
Run Code Online (Sandbox Code Playgroud)

但不使用require:

require "lib/workers/class_not_found.rb" # Fails
Run Code Online (Sandbox Code Playgroud)

ruby specs rspec sinatra

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

将图像存储为Rails中的模型

在我正在构建的网站的CMS中,我正在使用Paperclip来处理文件上传.用户可以上传图像,并且必须为每个图像提供简要描述,然后将其用于命名图像(用于SEO)和图像的alt标记.每个Image都调整为大量预定义大小并存储在S3上.

用户可以在许多地方利用该图像,有效地创建多种不同类型的模型,每种模型都参考特定图像.

因此,我需要存储关于图像的元数据(其描述),并且我需要在多个模型之间共享单个图像,将图像封装在自己的模型中似乎是有意义的,然后可以将其添加为任何需要它的模型的关联.Image然后该模型具有Paperclip的附件.这意味着我不需要在任何引用图像的模型上存储重复信息.

我担心的是表现.现在,任何图像请求都不需要直接作为属性访问URL,而是需要通过Image模型.

这是一个明智的解决方案还是我应该以不同的方式处理这个问题?

file-upload ruby-on-rails image paperclip ruby-on-rails-3

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

以简单形式设置提交按钮的默认类

我正在使用Simple Form with Rails 3.2.我目前正在我的应用程序中的每个表单的提交按钮添加相同的类.有很多形式,所以这不是很干.

<%= f.button :submit, class: "form-submit" %>
Run Code Online (Sandbox Code Playgroud)

有没有办法配置简单表单以使用所有提交按钮的默认类?

forms ruby-on-rails button simple-form ruby-on-rails-3.2

4
推荐指数
2
解决办法
1957
查看次数

使用FactoryGirl的attributes_for和Paperclip附件

我有一个叫做PhotoPaperclip附件的模型叫做image.

我有工作规格测试创建带附件的新照片,并可以手动创建它们.

我在我的规格中使用了以下FactoryGirl工厂:

FactoryGirl.define do
 factory :photo do
    image { File.new(File.join(Rails.root, 'spec', 'fixtures', 'images', 'minimum.jpg')) }
    # Other attributes omitted
 end
end
Run Code Online (Sandbox Code Playgroud)

我需要使用attributes_for(:photo)生成属性来传递给PhotoController的创建操作,但这样做会导致Paperclip引发错误:

Paperclip::AdapterRegistry::NoHandlerError:
       No handler found for "#<File:0x007f87c0a1d980>"
Run Code Online (Sandbox Code Playgroud)

我可以看到,如果我使用浏览器创建一个新的照片,该image属性如下所示:

"image"=>#<ActionDispatch::Http::UploadedFile:0x007fbc480b1c18 @tempfile=#<Tempfile:/var/folders/bv/x495g9g10m7119680c9ssqmr0000gn/T/RackMultipart20140622-45603-a1h9a8>, @original_filename="equals_cover_art_old.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"photo[image]\"; filename=\"equals_cover_art_old.jpg\"\r\nContent-Type: image/jpeg\r\n">}
Run Code Online (Sandbox Code Playgroud)

但是生成的图像属性attributes_for(:photo)如下所示:

:image=>#<File:/Users/me/Documents/Work/Websites/example/spec/fixtures/images/minimum.jpg>
Run Code Online (Sandbox Code Playgroud)

如何通过调用attributes_for(:photo)或解决它来生成正确的对象?

ruby ruby-on-rails paperclip ruby-on-rails-4 factory-bot

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

是否可以在 sass 中向无单位数字添加(动态)单位?

首先,我知道要将无单位值转换为有单位的值,我可以将无单位值乘以单个单位:

$value: 25 * 1px; // 25px
Run Code Online (Sandbox Code Playgroud)

但是我想知道当单位是动态时是否有任何方法可以做到这一点。

$unit: rem;
$value: 23;

.Box {
  // Try interpolation
  $united-value: #{$value}#{$unit};
  value: $united-value; // Appears to be correct
  // Check it is actually a number using unitless 
  check: unitless($united-value); // $number: "23rem" is not a number for `unitless'
}
Run Code Online (Sandbox Code Playgroud)

显然,如果我要计算 的值,$unit 1rem我可以像第一个示例中那样相乘,但是有没有办法用裸单位值来做到这一点。

萨斯迈斯特在这里

[编辑] 正如 @zessx 正确指出的那样,CSS 不关心类型,并且在这种情况下会以相同的方式处理字符串和数字值。但是,在附加单位后,我需要对该值执行操作。

[编辑]我不知道如何才能更清楚。我不想要/需要一个在幕后使用乘法的函数。我已经知道它是如何工作的以及如何做到这一点。我感兴趣是否有一种方法可以获取无单位值和单位并从中得到统一的数字。

有没有一种方法可以将它px作为一个数字并且可以对其进行数学运算?任何向我展示如何采取和做同样的事情的答案都没有回答我所问的问题。2222px1px22

sass multiplication units-of-measurement

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

使用 Netlify CMS 设置暂存工作流

我在 Gitlab 上有一个 Gatsby 站点部署到 Netlify 并使用 Netlify-CMS。Netlify 可以将站点推送到不同的分支,并将每个分支部署到单独的 url。例如,我当前的站点有一个production部署到的分支example.netlify.com和一个部署到staging--example.netlify.com.

但是,使用 Netlify CMS 更新内容时创建的提交是另一回事。看来(至少开箱即用),Netlify CMS 将始终将更改推送到其配置中定义的生产分支,无论检出哪个分支或站点位于何处:

文档

注意:无论您在哪里访问 Netlify CMS——无论是在本地运行、在登台环境中还是在您发布的站点中——它总是会在您配置的分支上的托管存储库(例如,在 GitHub 上)中获取和提交文件您的 Netlify CMS config.yml 文件。这意味着在管理 UI 中获取的内容将与存储库中的内容匹配,这可能与您本地运行的站点不同。这也意味着使用管理 UI 保存的内容将直接保存到托管存储库,即使您在本地或在暂存中运行 UI。

来自config.ymlNetlify CMS 使用的项目配置 ( ):

backend:
  name: git-gateway
  branch: production
Run Code Online (Sandbox Code Playgroud)

因此,目前我可以更改站点的结构并使它们仅在登台时可用,但是没有机制可以更改内容并使它们仅在本地或仅在登台时可用。

我可以看到的一种选择是为config.yml每个部署部署一个不同的文件(并在本地使用一个单独的文件),因此在本地使用 CMS 时,我将分支设置为dev,在登台和生产中,我将分支设置为stagingproduction分别。假设通过Netlify-CMS编辑被隔离的内容的位置,这应该可以很容易地从促进内容的变化stagingproduction

这是最好的方法吗?

javascript gatsby netlify netlify-cms

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

一旦测试失败,是否有可靠的方法让赛普拉斯退出?

我们有一个在 CI 服务器上运行的大型测试套件,如果测试失败,似乎无法告诉 Cypress 退出。它始终运行整个套件。

有一些讨论,在这里,但没有可行的解决方案。

一旦测试失败,是否有可靠的方法让赛普拉斯退出?

javascript testing continuous-integration cypress

4
推荐指数
2
解决办法
2871
查看次数

使用COMPC编译SWC,不包括第三方库

我有一个我已经构建的代码库.它依赖于另外两个(第三方)库.目前,当我将库编译成swc时,包含了第三方库.我正在寻找一种方法来编译我的代码库对抗第三方库,但不包括在编译的swc中.

这显然意味着任何使用我的库的人都需要这两个库,但我更喜欢这种方式.我没有使用Flex/Flashbuilder,我知道允许您选择要包含在swc中的类.

谢谢

apache-flex swc actionscript-3 compc

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

我应该在ObjectiveC类中设置默认变量值

我无法在头文件中设置默认值,那么应该在哪里设置?在班级的指定初始化?

variables objective-c default-value ios

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