我非常熟悉Zend Framework的详细信息以及大多数工作原理.我仍然不完全理解的一个领域是Zend Framework从application.ini加载资源的方式.
我知道我可以创建自己的protected _init函数,这些函数将在bootstrap期间自动调用.
Zend Framework文档在某些方面缺乏.
例如:resources.db配置选项如何以及何时加载?我的引导程序中没有任何关于db的内容.这是按需加载还是实际在引导过程中加载?
任何解释这一点的参考链接都会非常有用.
我们正在与服务提供商合作,该服务提供商通过RESTful API公开他们的服务.
我们可以通过将用户名和密码作为URL参数进行身份验证来进行身份验证.
例: https://example.com/api/service.json?api_user=Username&api_key=Password
我知道这是使用SSL.但是,由于用户名和密码是URL的一部分,这不能被第三方截获吗?
寻找确定元素是否真的为空的最佳方法.
<table id="foo">
<tr>
<td>Cell One</td>
<td></td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
但这两个回归true:
find("#foo td:nth-child(1)").should have_content('')
find("#foo td:nth-child(2)").should have_content('')
Run Code Online (Sandbox Code Playgroud)
所以我用过这个:
find("#foo td:nth-child(1)").text.should == 'Cell One'
find("#foo td:nth-child(2)").text.should == ''
Run Code Online (Sandbox Code Playgroud)
这似乎工作,但不检查元素是否可能包含其他元素.例如,它可能包含图像,链接或跨度.
我可以单独检查每一个(图像,链接或跨度),但似乎应该有更好的方法.
有没有办法测试元素是否为空?
作为mongo的新手,我在mongo手册中读到了有关优化对象ID的信息.
根据关于不创建单独的Created_On字段的建议,我决定稍后从_id字段中提取日期ObjectID
现在,我有很多记录都没有Created_On字段.
我试图查询日期范围,但不确定语法:
$start = new MongoDate(strtotime("2012-03-01 00:00:00"));
$end = new MongoDate(strtotime("2012-03-15 00:00:00"));
$collection->find(array('_id' => array('$gt' => $start, '$lte' => $end)));
Run Code Online (Sandbox Code Playgroud)
始终返回0结果.虽然我可以查询单个记录并从对象中提取日期.
我使用elasticsearch 0.19.9进行了多方面的查询.但是我想返回计数> 0的所有方面.
根据文档,我应该能够:
{
"query" : {
"match_all" : { }
},
"facets" : {
"tag" : {
"terms" : {
"field" : "tag",
"all_terms" : true
}
}
}
Run Code Online (Sandbox Code Playgroud)
}
据我所知,即使count为0,这也应该给我所有方面.
然而,这仍然只是按计数返回前10个方面.这是默认大小.这似乎影响返回面数的唯一事情就是通过设置实际上"size" : N 这里N是一个将被退回面数.
我可以将它设置为一个非常高的数字,但这似乎是黑客攻击.
关于我可能做错什么的任何想法?
Using devise (3.2.2)
Using rails (4.0.2)
Run Code Online (Sandbox Code Playgroud)
致力于开发仅需要某些路由的API。我的内容如下routes.rb:
devise_for :users, path: '/users', controllers: {
sessions: 'v1/custom_devise/sessions',
passwords: 'v1/custom_devise/passwords'
}
Run Code Online (Sandbox Code Playgroud)
大!现在我们有了所有这些路线:
Prefix Verb URI Pattern Controller#Action
new_user_session GET /users/sign_in(.:format) v1/custom_devise/sessions#new
user_session POST /users/sign_in(.:format) v1/custom_devise/sessions#create
destroy_user_session DELETE /users/sign_out(.:format) v1/custom_devise/sessions#destroy
user_password POST /users/password(.:format) v1/custom_devise/passwords#create
new_user_password GET /users/password/new(.:format) v1/custom_devise/passwords#new
edit_user_password GET /users/password/edit(.:format) v1/custom_devise/passwords#edit
PATCH /users/password(.:format) v1/custom_devise/passwords#update
PUT /users/password(.:format) v1/custom_devise/passwords#update
Run Code Online (Sandbox Code Playgroud)
但是我不需要或不需要这些路线:
new_user_session GET /users/sign_in(.:format) v1/custom_devise/sessions#new
new_user_password GET /users/password/new(.:format) v1/custom_devise/passwords#new
edit_user_password GET /users/password/edit(.:format) v1/custom_devise/passwords#edit
Run Code Online (Sandbox Code Playgroud)
所以我想我将按照文档创建自己的路线。所以我改变了我的routes.rb:
devise_scope :user do
post '/users/sign_in' => 'custom_devise/sessions#create', as: …Run Code Online (Sandbox Code Playgroud) DJ死后,日志文件什么也没说.
运行: ./script/delayed_job status
得到: pid-file for killed process 1143 found (/appPath/tmp/pids/delayed_job.pid), deleting.
delayed_job: no instances running
奇怪的是,如果我使用:./script/delayed_job run它将在前景中完美运行!永远不会死
试过很多版本delayed_job并且mongoid结果相同.
谁知道如何调试?
使用:
rails (3.2.7)
delayed_job_mongoid (2.0.0)
mongoid (3.0.3)
delayed_job (3.0.3)
我已经创建了证书颁发机构,并且需要生成并签署50多个证书。我想编写这个过程的脚本。我不想手动输入密码100次以上!
这是我挂断的命令:
openssl req -newkey rsa:1024 -keyout ~/myCA/tempkey.pem -keyform PEM -out ~/myCA/tempreq.pem -outform PEM
Run Code Online (Sandbox Code Playgroud)
问题是,它要我用以下提示创建密码:
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
Run Code Online (Sandbox Code Playgroud)
当系统仅要求我输入密码时,可以使用的-passin pass:mypass命令行选项openssl。但这似乎不适用于创建密码。
另外,当以后我最终将其删除时,需要输入密码似乎很奇怪:
openssl rsa < tempkey.pem > server_key.pem
Run Code Online (Sandbox Code Playgroud)
我尝试创建一个简单的Ruby脚本:
require 'open3'
Open3.popen2("openssl req -newkey rsa:1024 -keyout ~/myCA/tempkey.pem -keyform PEM -out ~/myCA/tempreq.pem -outform PEM") {|i,o,t|
i.puts "mySecretPassword"
i.puts "mySecretPassword"
}
Run Code Online (Sandbox Code Playgroud)
但这似乎也不起作用。我仍然遇到一个手动提示,要求我创建密码。
是否有一种简单的方法来记录查询文件?我有Firebug分析工作没有问题:
resources.db.params.profiler.enabled = "true"
resources.db.params.profiler.class = "Zend_Db_Profiler_Firebug"
Run Code Online (Sandbox Code Playgroud)
将它记录到一个没有编写一堆代码的文件会很好.
有没有我可以用Zend_Db_Profiler_Firebug换掉的课程?
更新:请参阅下面的答案.
我想搜索query_string包含Bob和Industry_Type_ID任8OR 9.
我得到一个解析错误: Parse Failure [No parser for element [Industry_Type_ID]]
{
"query" : {
"query_string":{"query":"Bob"},
"terms" : {
"Industry_Type_ID" : [ "8", "9" ],
"minimum_match" : 1
}
}
}
Run Code Online (Sandbox Code Playgroud)
我相信我错过了一些明显的东西.
我有一个小表单,其中包含一个jQuery UI对话框,以便在选中特定复选框时询问其他信息.该对话框打开,包含2个附加复选框.
问题是当提交表单时,对话框中的2个复选框不会与表单的其余部分一起提交.从jQuery呈现对话框时我可以看出,它实际上将它呈现在结束表单标记之外,导致复选框不再是表单的一部分.
我尝试过这样的事情:
$("#dialog-form").parent().appendTo($("#ContactSpeakerForm:first"));
Run Code Online (Sandbox Code Playgroud)
但还没有想出一个好的解决方案.
这是我的js:
$(function() {
var eventReg = $('#dialog-form').dialog({
autoOpen: false,
modal: true,
buttons: {
Ok: function() {
$(this).dialog("close");
}
}
});
$('#Confirmed').click(function() {
if($('#Confirmed').attr('checked')) {
eventReg.dialog("open");
}
});
});
Run Code Online (Sandbox Code Playgroud)
这是html:
<form id="ContactSpeakerForm" name="ContactSpeakerForm" action="/contacts/add-contact-speaker/id/3420" method="post">
<input type="hidden" name="ID" value="" id="ID">
<input type="hidden" name="Contact_ID" value="3420" id="Contact_ID">
<div class="page_panel_table">
<table>
<tbody>
<tr>
<td align="right" class="form_label">Confirmed:</td>
<td>
<input type="checkbox" name="Confirmed" id="Confirmed" value="1">
</td>
</tr>
<tr>
<td><input type="submit" name="submit" id="submit" value="Save"></td>
</tr>
</tbody>
</table>
</div>
<div id="dialog-form" style="display:none;" title="Speaker …Run Code Online (Sandbox Code Playgroud) 获取端口已被使用错误.
require 'em-websocket'
EM.run {
EM::WebSocket.run(:host => "192.168.1.100", :port => 9001) do |ws|
# Code goes here...
end
}
Run Code Online (Sandbox Code Playgroud)
然后在同一台服务器上同时但不同的IP地址:
require 'em-websocket'
EM.run {
EM::WebSocket.run(:host => "192.168.1.101", :port => 9001) do |ws|
# Code goes here...
end
}
Run Code Online (Sandbox Code Playgroud)
然后我得到这个错误......端口应该绑定IP地址,因此可以使用.
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/eventmachine-1.0.3/lib/eventmachine.rb:526:in 'start_tcp_server': no acceptor (port is in use or requires root privileges) (RuntimeError)
我错过了什么吗?
更新:
跑步:netstat -tulpn | grep ruby显示:
tcp 0 0 0.0.0.0:9001 0.0.0.0:* LISTEN 718/ruby
Run Code Online (Sandbox Code Playgroud)
清楚地显示服务器绑定到0.0.0.0And Not192.168.1.100
我怎样才能eventmachine绑定到192.168.1.100? …