当我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.
怎么解决?
在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?
如何在JSF页面中调试EL?我想看变量值,函数调用等等.最好的解决方案是eclipse插件,但任何其他可能性都比猜测"为什么这个表达式无法正确呈现?"更好.
我们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) 我使用新的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)
但这不是最漂亮的解决方案.你还知道更好吗?
我在我的应用程序中使用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)
你知道我怎么能部署它?
我想在一个页面上放置使用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.
我binding.pry调试它时经常插入我的ruby文件.当我使用Vim时,我喜欢自动化它以避免每次重新输入它.我怎么能这样做?
我要映射的确切顺序是:
binding.pry新创建的行.编辑: binding.pry是我要粘贴的文本,而不是文件.
在插入之前:
a = 1
b = 2
Run Code Online (Sandbox Code Playgroud)
插入后:
a = 1
binding.pry
b = 2
Run Code Online (Sandbox Code Playgroud) 我开发了一个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(但我不知道它是否相关).我有一个模特Category和CategoriesController.
可能是什么问题?
我正在创建一个接受JSON数据的API,我想为它提供测试数据.
是否有类似JSON数据的工厂?我想在对象和JSON中提供相同的数据,以便我可以检查导入是否按预期工作.
JSON有严格定义的结构,所以我不能打电话FactoryGirl(:record).to_json.