小编Jar*_*eck的帖子

Papertrail和Carrierwave

我有一个使用两者的模型:Carrierwave用于商店照片和PaperTrail版本控制.

我还在更新时配置了Carrierwave用于存储不同的文件(那是因为我想对照片进行版本控制) config.remove_previously_stored_files_after_update = false

问题是PaperTrail尝试从照片(CarrierWave Uploader)存储整个Ruby对象而不是简单的字符串(这将是它的url)

(版本表,列对象)

---
first_name: Foo
last_name: Bar
photo: !ruby/object:PhotoUploader
  model: !ruby/object:Bla
    attributes:
      id: 2
      first_name: Foo1
      segundo_nombre: 'Bar1'
      ........
Run Code Online (Sandbox Code Playgroud)

如何修复此问题以在照片版本中存储简单的字符串?

ruby-on-rails ruby-on-rails-3 carrierwave paper-trail-gem

9
推荐指数
2
解决办法
2073
查看次数

Capybara Webkit运行时警告:Class都在两者中实现

我跑步的时候,我收到了一些来自webkit的警告rspec.我正在使用capybara-webkitqt安装brew.我当然希望解决这些问题.谢谢你的帮助.

警告如:"两者都实施"

objc[97388]: Class WebCoreMovieObserver is implemented in both /usr/local/Cellar/qt/4.8.0/lib/QtWebKit.framework/Versions/4/QtWebKit and /System/Library/Frameworks/WebKit.framework/Versions/A/Frameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[97388]: Class WebCoreSharedBufferData is implemented in both /usr/local/Cellar/qt/4.8.0/lib/QtWebKit.framework/Versions/4/QtWebKit and /System/Library/Frameworks/WebKit.framework/Versions/A/Frameworks/WebCore.framework/Versions/A/WebCore. One of the two will be used. Which one is undefined.
objc[97388]: Class WebVideoFullscreenWindow is implemented in both /usr/local/Cellar/qt/4.8.0/lib/QtWebKit.framework/Versions/4/QtWebKit and /System/Library/Frameworks/WebKit.framework/Versions/A/WebKit. One of the two will be used. Which one is undefined.
objc[97388]: Class WebVideoFullscreenController is implemented in both …
Run Code Online (Sandbox Code Playgroud)

webkit rspec ruby-on-rails capybara-webkit

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

如何复制ruby变量?

也许我今天只是盯着我的屏幕太久了,但我认为应该是非常基本的东西让我很难受.

我正在尝试对变量进行"复制",以便我可以在不修改原始数据的情况下对其进行操作.

# original var is set
foo = ["a","b","c"]

# i want a copy of the original var so i dont modify the original
bar = foo

# modify the copied var
bar.delete("b")

# output the values
puts bar # outputs: ["a","c"] - this is right
puts foo # outputs: ["a","c"] - why is this also getting modified?
Run Code Online (Sandbox Code Playgroud)

我不想foo被改变.

ruby variables

7
推荐指数
2
解决办法
1514
查看次数

以编程方式检查gem中是否包含gem?

在运行时,在完成捆绑器设置并应用之后,以编程方式检查给定gem_name是否在捆绑中的最佳方法是什么?

通过阅读来源,我发现Bundler.definition,例如

gem_name = 'banana'
Bundler.definition.dependencies.map(&:name).include?(gem_name)
Run Code Online (Sandbox Code Playgroud)

但无法找到文档1,我不知道这是否是推荐用法.

更新:它看起来像Bundler::Definition#dependencies返回所有依赖项,而不管组.作为替代方案,我发现Bundler::Runtime#dependencies_for哪个将组作为参数.

Bundler.load.dependencies_for(:default, Rails.env).map(&:name).include?(gem_name)
Run Code Online (Sandbox Code Playgroud)

但是,在每个呼叫站点复制"组列表"似乎是个坏主意.理想情况下,我想要一种方法Bundler,不要求我指定当前组.

1 bundler网站和手册页专注于命令行使用.我还没有找到有关gem的公共ruby API的任何文档.源代码中的注释很有帮助,但主要关注数据类型等.

ruby rubygems bundler

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

新 Rails 应用程序中的“获取原始源时出错”(Sprockets 4、Firefox 70)

sprockets 4.0.0 似乎与 Chrome 78 兼容,但与 Firefox 70 不兼容。

从一个新的 rails 应用程序开始:

rails -v # Rails 6.0.0
rails new helloworld
Run Code Online (Sandbox Code Playgroud)
# Gemfile
gem 'sass-rails', '~> 6' # not 5
Run Code Online (Sandbox Code Playgroud)
bundle | grep sprockets
Using sprockets 4.0.0
Using sprockets-rails 3.2.1
Run Code Online (Sandbox Code Playgroud)
# layouts/application.html.erb
javascript_include_tag 'application'
Run Code Online (Sandbox Code Playgroud)
# app/assets/javascripts/application.js
console.log('line 1');
throw 'line 2';
Run Code Online (Sandbox Code Playgroud)
# app/assets/config/manifest.js
//= link_directory ../javascripts .js
Run Code Online (Sandbox Code Playgroud)
# Dev tools console, Firefox 70
line 1 application.source.js:1
uncaught exception: line 2 application.source.js:2
Error while fetching an original source: "http://localhost:3000/assets/application.source.js" is not in …
Run Code Online (Sandbox Code Playgroud)

firefox ruby-on-rails sprockets ruby-on-rails-6

7
推荐指数
0
解决办法
481
查看次数

heroku上的自定义时钟进程

我刚刚在一个典型的'nix服务器上继承了Rails项目.决定将它移动到客户端的heroku,由我来完成后台进程.目前,它使用Whenever来安排每日事件(电子邮件等)并在启动时启动延迟的作业队列.

Heroku提供了一个使用发条的自定义时钟进程文档的示例,我可以通过这个示例随时使用吗?我可能遇到的任何陷阱?我是否需要创建一个单独的工作人员dyno?

使用发条的Ruby中的预定作业和自定义时钟进程

ruby-on-rails heroku whenever

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

茉莉花节点的目的是什么?

我可以用jasmine-node或者只是运行我的规格jasmine.他们都运行我的规格.那么,jasmine-node增加什么价值呢?自述文件说:

这个node.js模块在node.js中提供了精彩的Pivotal Lab的jasmine规范框架. https://github.com/mhevery/jasmine-node/blob/master/README.md

我不明白.我的应用程序运行node,我的规格require节点模块..所以当我运行时jasmine,我已经使用了两个nodejasmine.是什么jasmine-node补充的吗?

我特别不是在询问jasmine-node您最喜欢的原因或其他图书馆的建议.我只想知道,目的jasmine-node什么?

javascript node.js jasmine jasmine-node

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

空表单POST数据

任何人都可以告诉我,如果您通过POST发送HTML表单并且不输入数据会发生什么?

例如:通过POST另一个页面(例如servlet或PHP)发送的输入字段"name" .如果您不输入值,接收页面会得到什么?元素未发送(null)或者您是否获得空字符串?

html forms null post send

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

ANTLR输入'<EOF>'不匹配

鉴于以下ANTLR 4.1语法,有一条线被故意注释掉......

grammar Foobar;

//whyDoesThisRuleHelp : expression ;
expression : operand | binaryOperation ;
binaryOperation : operand WS BINARY_OPERATOR WS expression ;
operand : LETTER ;

BINARY_OPERATOR : 'EQ' ;
LETTER : [a-z] ;
WS : [ \n]+ ;
Run Code Online (Sandbox Code Playgroud)

..为什么echo -n "a EQ b" | grun Foobar expression生产

line 1:6 mismatched input '<EOF>' expecting WS
Run Code Online (Sandbox Code Playgroud)

.. 但如果我们取消注释block : expression ;上面的行,那么grun 不会产生错误

antlr antlr4

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

Encoding::BINARY 和 Encoding::ASCII-8BIT 的区别?

Ruby 说的Encoding::BINARYEncoding::ASCII-8BIT是一样的。

Encoding::BINARY == Encoding::ASCII_8BIT
#=> true
Run Code Online (Sandbox Code Playgroud)

我们显式地创建了一个二进制字符串,而 ruby​​ 仍然说它是ASCII_8BIT.

String.new("ABC", encoding: Encoding::BINARY).encoding
#=> #<Encoding:ASCII-8BIT>
Run Code Online (Sandbox Code Playgroud)

同样,force_encoding不能创建 a BINARY,它只会创建一个ASCII-8BIT字符串。

似乎这BINARY只是 的别名ASCII-8BIT。有什么区别吗?

ruby encoding

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