小编mrz*_*asa的帖子

捆绑安装失败,出现SSL证书验证错误

当我bundle install在Centos 5.5上运行我的Rails 3项目时失败并出现错误:

Gem::RemoteFetcher::FetchError: SSL_connect returned=1 errno=0 state=SSLv3 
read server certificate B: certificate verify failed 
(https://bb-m.rubygems.org/gems/multi_json-1.3.2.gem)
An error occured while installing multi_json (1.3.2), and Bundler cannot continue.
Make sure that `gem install multi_json -v '1.3.2'` succeeds before bundling.
Run Code Online (Sandbox Code Playgroud)

当我尝试手动安装gem时(by gem install multi_json -v '1.3.2')它可以工作.其他几个宝石也会出现同样的问题.我使用RVM(1.12.3),ruby 1.9.2,bundler 1.1.3.

怎么解决?

ruby ssl rubygems ruby-on-rails bundler

261
推荐指数
12
解决办法
17万
查看次数

object.presence有什么意义?

在Rails文档中,为该方法提供的示例object.presence是:

region = params[:state].presence || params[:country].presence || 'US'
Run Code Online (Sandbox Code Playgroud)

但这不等于:

region = params[:state] || params[:country] || 'US'
Run Code Online (Sandbox Code Playgroud)

有什么用presence

ruby ruby-on-rails

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

如何调试JSF/EL

如何在JSF页面中调试EL?我想看变量值,函数调用等等.最好的解决方案是eclipse插件,但任何其他可能性都比猜测"为什么这个表达式无法正确呈现?"更好.

eclipse debugging jsf el jsf-2

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

是否在测试之间清除了Rails.cache?

我们Rails.cache在Rails 3.2应用程序中使用缓存id/path映射.在某些机器上它运行正常,但在其他机器上的值是错误的.原因很难跟踪,所以我对Rails.cache自己有一些疑问.它是在测试之间清除的吗?是否有可能在测试模式中使用在开发模式中缓存的值?如果它没有被清除,我怎么能在运行规范之前做到这一点?

我的缓存存储配置是:

#in: config/environments/development.rb
config.cache_store = :memory_store, {:size => 64.megabytes}

#in: config/environments/production.rb
# config.cache_store = :mem_cache_store
Run Code Online (Sandbox Code Playgroud)

ruby caching rspec ruby-on-rails

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

RSpec:我如何在期望语法中使用数组包含匹配器

我使用新的rspec语法(expect而不是should),我想测试一个数组是否包含另一个数组的元素.在旧的语法中它将是:

array1.should include(array2)
Run Code Online (Sandbox Code Playgroud)

在我尝试编写的新语法中:

expect(array1).to include(array2)
Run Code Online (Sandbox Code Playgroud)

但我得到一个错误(这是非常合理的):

TypeError: wrong argument type Array (expected Module)
Run Code Online (Sandbox Code Playgroud)

然后我写道:

expect(array1).to be_include(array2)
Run Code Online (Sandbox Code Playgroud)

但它很难看;-) UPDATE:它不起作用:显然它是cheks如果array2是array1的元素,如果array2的所有元素都包含在array1中.

最后我写道:

expect(array1 & array2).to eq(array2)
Run Code Online (Sandbox Code Playgroud)

但这不是最漂亮的解决方案.你还知道更好吗?

ruby unit-testing rspec

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

bouncycastle + JBoss AS7:JCE无法验证提供商BC

我在我的应用程序中使用BouncyCastle进行加密.当我独立运行时,一切正常.但是,如果我把它放在webapp中并部署在JBoss服务器上,我会收到以下错误:

javax.servlet.ServletException: error constructing MAC: java.security.NoSuchProviderException: JCE cannot authenticate the provider BC
(...)
root cause
java.lang.Exception: error constructing MAC: java.security.NoSuchProviderException: JCE cannot authenticate the provider BC
(...)
root cause
java.io.IOException: error constructing MAC: java.security.NoSuchProviderException: JCE cannot authenticate the provider BC
    org.bouncycastle.jce.provider.JDKPKCS12KeyStore.engineLoad(Unknown Source)
    java.security.KeyStore.load(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

以下是导致此错误的代码的一部分:

    if (Security.getProvider(BouncyCastleProvider.PROVIDER_NAME) == null)
    {
        Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
    }

    // Read the Private Key
    KeyStore ks = KeyStore.getInstance("PKCS12", BouncyCastleProvider.PROVIDER_NAME);
    ks.load(new FileInputStream(certificatePath), privateKeyPassword.toCharArray());
Run Code Online (Sandbox Code Playgroud)

和maven依赖:

<dependency>
    <groupId>bouncycastle</groupId>
    <artifactId>bcmail-jdk16</artifactId>
    <version>140</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

你知道我怎么能部署它?

java security jboss bouncycastle jce

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

Rails simple_form:自定义输入id

我想在一个页面上放置使用Rails simple_form生成的几个表单,并使用javascript对它们进行操作.但是,simple_form为表单中的各个输入生成相同的ID.因此,我想用自己的id替换生成的id.

现在我有一条线:

<%= f.input :id, :as => :hidden, :html => {:value => @question.id} %>
Run Code Online (Sandbox Code Playgroud)

和HTML输出(对于@ question.id = 1):

<input id="question_id" class="hidden" type="hidden" value="1" name="question[id]">
Run Code Online (Sandbox Code Playgroud)

我想得到:

<input id="question_id_1" class="hidden" type="hidden" value="1" name="question[id]">
Run Code Online (Sandbox Code Playgroud)

question_id_1只是一个例子.我希望能够选择这个ID.

我使用Rails 3和simple_form 1.5.

forms ruby-on-rails

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

在键盘快捷方式上插入预定义文

binding.pry调试它时经常插入我的ruby文件.当我使用Vim时,我喜欢自动化它以避免每次重新输入它.我怎么能这样做?

我要映射的确切顺序是:

  1. 插入新行.
  2. 插入binding.pry新创建的行.
  3. 返回正常模式.

编辑: binding.pry是我要粘贴的文本,而不是文件.

在插入之前:

a = 1
b = 2
Run Code Online (Sandbox Code Playgroud)

插入后:

a = 1
binding.pry
b = 2
Run Code Online (Sandbox Code Playgroud)

vim

18
推荐指数
3
解决办法
5322
查看次数

没有成员标识的资源路由

我开发了一个Rails应用程序,并添加了简单的路由:

Name::Application.routes.draw do
  resource :categories
end
Run Code Online (Sandbox Code Playgroud)

问题是生成的URL中没有成员标识:

$ rake routes
categories      POST   /categories(.:format)      categories#create
new_categories  GET    /categories/new(.:format)  categories#new
edit_categories GET    /categories/edit(.:format) categories#edit
                GET    /categories(.:format)      categories#show
                PUT    /categories(.:format)      categories#update
                DELETE /categories(.:format)      categories#destroy
Run Code Online (Sandbox Code Playgroud)

我使用Rails 3.2.3.我不在应用程序中使用ActiveRecord(但我不知道它是否相关).我有一个模特CategoryCategoriesController.

可能是什么问题?

rest routes ruby-on-rails

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

rspec测试的JSON数据

我正在创建一个接受JSON数据的API,我想为它提供测试数据.

是否有类似JSON数据的工厂?我想在对象和JSON中提供相同的数据,以便我可以检查导入是否按预期工作.

JSON有严格定义的结构,所以我不能打电话FactoryGirl(:record).to_json.

ruby json factory rspec ruby-on-rails

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