我有rspec测试控制器设计验证的问题.
我有以下设置
我已经包括在内
config.include Devise::TestHelpers, :type => :controller
Run Code Online (Sandbox Code Playgroud)
在我的spec_helper.rb中
在我的merchants_controller_spec.rb中
describe MerchantsController do
before :each do
@user = Factory(:user)
@merchant = Factory(:merchant, :user_id => @user.id,:is_approved => false, :is_blacklisted => false)
controller.stub!(:current_user).and_return(@user)
end
describe "GET index" do
it "assigns all merchants as @merchants" do
merchant = Factory(:merchant,:is_approved => true, :is_blacklisted => false)
get :index
assigns(:merchants).should eq([merchant])
end
end
end
Run Code Online (Sandbox Code Playgroud)
我的商人_controller.rb
class MerchantsController < ApplicationController
before_filter :authenticate_user!
def index
@merchants = Merchant.approved
debugger
respond_to do |format|
format.html # index.html.erb
format.xml { render …
Run Code Online (Sandbox Code Playgroud) 我试图使用Rabbitmq服务器由于某种原因连接突然关闭,即使我传递了正确的用户名和密码.
Rabbitmq服务器在端口5672上运行,并通过端口5672 telnet到我的服务器说它运行正常.
我在CentOS安装了rabbitmq服务器,我的rabbitmq服务器日志如下:
=INFO REPORT==== 19-Dec-2012::06:25:44 ===
accepted TCP connection on [::]:5672 from <host>:42048
=INFO REPORT==== 19-Dec-2012::06:25:44 ===
starting TCP connection <0.357.0> from <host>:42048
=WARNING REPORT==== 19-Dec-2012::06:25:44 ===
exception on TCP connection <0.357.0> from <host>:42048
connection_closed_abruptly
=INFO REPORT==== 19-Dec-2012::06:25:44 ===
closing TCP connection <0.357.0> from <host>:42048
Run Code Online (Sandbox Code Playgroud)
可能出现这种情况的原因可能是什么.
谢谢
我有一个模特
class Employee
include Mongoid::Document
field :first_name
field :last_name
field :address1
field :address2
field :salary
end
Run Code Online (Sandbox Code Playgroud)
现在我需要将所有员工的工资更新为10000,其地址1是"卡尔加里"
现在我尝试了这个查询
Employee.update_all "salary = 10000", "address1 = 'Calgary'"
Run Code Online (Sandbox Code Playgroud)
但是这个查询给了我错误:
NoMethodError: undefined method `update_all' for Employee:Class
Run Code Online (Sandbox Code Playgroud)
谢谢
我正在使用IE8,我正在向url发送ajax请求,该请求以json的形式发回响应.下面给出了ajax设置的jquery代码:
$(document).ready(function(){
$.ajax({
url: url_string,
dataType: "json",
success: function(response){
alert('all is well');
},
error: function(request, status, error){
alert(request);
alert(status);
alert(error);
}
});
});
Run Code Online (Sandbox Code Playgroud)
我确信服务器正在发送JSON响应,但IE8将其视为文件并显示下载弹出框.但同样的过程适用于FF和Chrome.当我更换这仍然发生JSON到JSONP中的dataType
但它总是进入错误回调方法.
我的json响应主体也包含一个带有html标签的字符串.
知道为什么会这样吗?
谢谢
我有一个组控制器,它接受哈希数组作为创建操作的POST请求的参数
def create
response = Group.create(current_user_id, group_params)
render json: response
end
def group_params
params.require(:group).permit(:group_name, :group_title, group_members: [])
end
Run Code Online (Sandbox Code Playgroud)
但它不通过强参数接受group_members参数
以下是我的应用程序中带有params的传入请求
Started POST "/groups" for 127.0.0.1 at 2014-08-04 08:25:37 +0545
Processing by GroupsController#create as JSON
Parameters: {"group"=>{"group_name"=>"Fourth group", "group_title"=>"fourth tester", "group_members"=>[{"id"=>"0833be3c-17db-11e4-904b-3f662703cb5b", "darknet_accountname"=>"@ckgagan", "access_level"=>"Write"}]}}
Unpermitted parameters: group_members
Completed 200 OK in 10ms (Views: 0.2ms)
Run Code Online (Sandbox Code Playgroud)
我看过很多帖子,说在允许内部添加group_members:[]会有效但在我的情况下不起作用.
我有一个以下的模块
module SimpleTask
def task1
end
def task2
end
def task3
end
end
Run Code Online (Sandbox Code Playgroud)
我有一个只需要task2
模块方法的模型SimpleTask
.
我知道包括SimpleTask
在我的模型中include SimpleTask
可以完成这项工作.
但我想知道我是否只能task2
在我的模型中包含特定方法.
我无法在initializers/devise.rb中使用设计会话超时来超时会话
我设置
config.timeout_in = 1.minute
Run Code Online (Sandbox Code Playgroud)
在initializers/devise.rb中,我与一个用户签约并保持闲置2分钟.这假设使当前会话无效并再次提示询问用户凭据但会话永远不会死亡.
我做错了什么或遗失了什么?
谢谢
我想在发送ajax请求时设置referer页面.我这样做了但是没用.
我已将此javascript包含在本地html文件中,主网址为跨域.
$.ajax({
url: "{{main url}}",
dataType: "json",
beforeSend: function(xhr){
xhr.setRequestHeader('X-Alt-Referer', '{{referer url}}');
},
success: function(data){
console.log(data);
}
});
Run Code Online (Sandbox Code Playgroud)
我从这个网址得到了一些提示
我明白了
"NetworkError: 404 Not Found - {{main url}}"
Run Code Online (Sandbox Code Playgroud)
我从firefox控制台尝试它时出错
这个脚本有什么问题,还是有另一种方法可以做到这一点?
我无法使用dalli gem将memcached用作使用rails 4的会话存储.
这就是我所做的.
我将dalli gem添加到Gemfile中
gem 'dalli'
Run Code Online (Sandbox Code Playgroud)
我在config/initializers/session_store.rb中添加了以下行
Rails.application.config.session_store ActionDispatch::Session::CacheStore, :expire_after => 20.minutes
Run Code Online (Sandbox Code Playgroud)
我在development.rb中添加了以下行
config.cache_store = :dalli_store
Run Code Online (Sandbox Code Playgroud)
现在当我使用瘦服务器启动我的开发服务器而不启动memcached服务器时,我仍然可以照常登录.我应该得到一些错误,如没有运行memcached服务器或类似的东西.
我不确定rails是否使用memcached作为会话存储.
有人能告诉我在开发环境中使用memcached作为会话存储时我错过了什么?
为了您的信息,我一直在使用devise作为身份验证gem.
谢谢
我有一个表A,其中有一个列'template_phash'.我存储了400K图像生成的phash.
现在我拍摄一张随机图像并从该图像生成一个镜头.
现在我如何查询,以便我可以从表A获得汉明距离差小于阈值的记录,比如说20.
我在SQL中看到了二进制字符串的汉明距离,但无法弄明白.
我想我发现我需要制作一个功能来实现这个但是怎么做?
我的两个phash都在BigInt中,例如:7641692061273169067
请帮我制作这个功能,以便我可以查询
SELECT product_id, HAMMING_DISTANCE(phash1, phash2) as hd
FROM A
WHERE hd < 20 ORDER BY hd ASC;
Run Code Online (Sandbox Code Playgroud)