在过去的两个小时里,我一直在尝试调试设计中的一个奇怪的问题,这不是让我登录.
这也是我所指的东西:
password
=> 'vinodsobale'
password == 'vinodsobale'
=> true
resource.valid_password?(password)
=> false
resource.valid_password?('vinodsobale')
=> true
Run Code Online (Sandbox Code Playgroud)
附上截图:
注意:我在设计中启用了调试器,因此上面的代码是设计内部代码.
对我来说,它看起来像是一个问题Devise.secure_compare.
我有简单的redis list key =>"supplier_id"
现在我想要它检索列表的所有值而不实际迭代或弹出列表中的值
从列表中检索所有值的示例现在我已经迭代了redis长度
element = []
0.upto(redis.llen("supplier_id")-1) do |index|
element << redis.lindex("supplier_id",index)
end
Run Code Online (Sandbox Code Playgroud)
这可以在没有迭代 perhap的情况下完成,具有更好的redis建模.有谁能建议
我尝试在HTML5(localStorage)中使用Client Side Storage for Iphone Application,我完全知道localStorage(目前是5MB)的" QUOTA " .
现在的问题是我的应用程序(以前没有存储数据).尝试将数据存储在localStorage中导致QUOTA_EXCEEDED_ERR,尽管整体数据的大小小于5 MB(精确到~4.5b(在普通浏览器中使用chrome web inspector找到))
任何人都可以分享一下这个数据如何称重4Kb导致QUOTA_EXCEEDED_ERR当相同5MB的上限时
请注意,问题仅发生在iPhone上,所有浏览器甚至iPhone模拟器都没有提示QUOTA_EXCEEDED_ERR错误
iPhone目前的图片是iPhone 4.
一度如何设置访问Google Cloud Compute中给定项目中所有实例的CPU使用率和内存使用率
我在文档中找不到任何相同的内容.
尝试在我的工作示例中实现Celluloid 异步似乎表现出奇怪的行为.
这里我的代码看起来
class Indefinite
include Celluloid
def run!
loop do
[1].each do |i|
async.on_background
end
end
end
def on_background
puts "Running in background"
end
end
Indefinite.new.run!
Run Code Online (Sandbox Code Playgroud)
但是当我运行上面的代码时,我从未看到过" 在后台运行 "
但是,如果我睡觉,代码似乎工作.
class Indefinite
include Celluloid
def run!
loop do
[1].each do |i|
async.on_background
end
sleep 0.5
end
end
def on_background
puts "Running in background"
end
end
Indefinite.new.run!
Run Code Online (Sandbox Code Playgroud)
任何的想法?为什么在上述两个场景中存在这样的差异.
谢谢.
我有一个在carrierwave上运行的图像上传应用程序,它限制用户只上传所需扩展名的图像'jpg,jpeg,png'我已经在我的上传器中定义了对carrierwave的验证定义为
def extension_white_list
%w(jpg jpeg png)
end
Run Code Online (Sandbox Code Playgroud)
现在,任何尝试上传具有与所需扩展名不同的扩展名的图像(如上所述)都会导致验证错误
我想自定义验证错误消息
现在错误消息显示为
You are not allowed to upload "" files, allowed types: ["jpg","jpeg","png"]
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我找到这个链接的人提到如何实现这一点
但它有些问题
1. I18n support I dont require to translate the error message using I18n
2. The 'Key' to be used I not sure which key to used in YAML for
not matching extension whitelist error message (e.g) carrierwave_processing_error key if error is for processing failure
Run Code Online (Sandbox Code Playgroud)
请给我一个CarrierWave的答案,请不要让我为扩展匹配编写单独的验证集
我到处都看了一眼,发现了很多信息...但是没有什么对我有用而且我没有得到它:(
我知道你应该覆盖注册控制器,如下所示:
class Users::RegistrationsController < Devise::RegistrationsController
def after_sign_up_path_for(resource)
authors_waiting_path
end
end
Run Code Online (Sandbox Code Playgroud)
然后按照Tony Amoyal http://www.tonyamoyal.com/2010/07/28/rails-authentication-with-devise-andcancan-customizing-devise-controllers/显示的例子,我应该改变我的路线更新新控制器的访问权限:
devise_for :users, :controllers => { :registrations => "users/registrations" } do
#get '/author/sign_up', :to => 'devise/registrations#new'
#get '/client/sign_up', :to => 'devise/registrations#new'
get '/author/sign_up', :to => 'users/registrations#new'
get '/client/sign_up', :to => 'users/registrations#new'
end
Run Code Online (Sandbox Code Playgroud)
是的,我在这里有点奇怪,因为我正在捕捉一些特定的路径将它们发送到注册页面,这使我能够有效地创建2个注册场景.在我覆盖注册控制器之前,我评论了我的内容.
即使所有这些和我的authors_waiting_path是一个有效的路径,它只是在注册后继续进入登录页面:(
这真令人沮丧.
亚历克斯
编辑:我也在设计维基上找到了这个:https://github.com/plataformatec/devise/wiki/How-To : -Redirect- after-registration-(sign- up)
但我不知道在哪里定义这个创建方法?我应该覆盖会话控制器???
编辑2:
我把控制器的虚拟覆盖:
class Pouets::RegistrationsController < Devise::RegistrationsController
def after_sign_up_path_for(resource)
authors_waiting_path
end
def new
super
end
def create
puts "was here"
super
end …Run Code Online (Sandbox Code Playgroud) 以下是我的赛璐珞代码.
client1.rb2个客户之一.(我把它命名为客户1)
client2.rb2个客户中的第2个.(命名为客户2)
上述2个客户端之间唯一的区别是传递给服务器的文本.即('client-1'和'client-2'分别)
在测试这2个客户端(通过并排运行)对后续2个服务器(一次一个).我发现很奇怪的结果.
server1.rb(从赛璐珞-zmq的README.md获取的基本示例)
使用此作为上述2个客户端的示例服务器导致并行执行任务.
OUTPUT
ruby server1.rb
Received at 04:59:39 PM and message is client-1
Going to sleep now
Received at 04:59:52 PM and message is client-2
Run Code Online (Sandbox Code Playgroud)
所述client2.rb当被处理的消息client1.rb请求是对睡眠(并行标记)
使用此作为上述2个客户端的示例服务器并未导致并行执行任务.
OUTPUT
ruby server2.rb
Received at 04:55:52 PM and message is client-1
Going to sleep now
Received at 04:56:52 PM and message …Run Code Online (Sandbox Code Playgroud) 阅读关于线程安全的ZeroMQ常见问题时偶然发现.
我的多线程程序在ZeroMQ库中的奇怪位置不断崩溃.我究竟做错了什么?
ZeroMQ套接字不是线程安全的."指南"中对此进行了详细介绍.
简短的版本是不应该在线程之间共享套接字.我们建议为每个线程创建一个专用套接字.
对于每个线程的专用套接字不可行的情况,当且仅当每个线程在访问套接字之前执行完整的内存屏障时,才可以共享套接字.大多数语言都支持Mutex或Spinlock,它将代表您执行完整的内存屏障.
我的多线程程序在ZeroMQ库中的奇怪位置不断崩溃.
我究竟做错了什么?
以下是我的以下代码:
Celluloid::ZMQ.init
module Scp
module DataStore
class DataSocket
include Celluloid::ZMQ
def pull_socket(socket)
@read_socket = Socket::Pull.new.tap do |read_socket|
## IPC socket
read_socket.connect(socket)
end
end
def push_socket(socket)
@write_socket = Socket::Push.new.tap do |write_socket|
## IPC socket
write_socket.connect(socket)
end
end
def run
pull_socket and push_socket and loopify!
end
def loopify!
loop {
async.evaluate_response(read_socket.read_multipart)
}
end
def evaluate_response(data)
return_response(message_id,routing,Parser.parser(data))
end
def return_response(message_id,routing,object)
data = object.to_response
write_socket.send([message_id,routing,data])
end
end
end
end
DataSocket.new.run
Run Code Online (Sandbox Code Playgroud)
现在,有几件我不清楚的事情:
1) 假设 …
我想在自定义验证中应用范围限制器
我有这个产品模型,它有make,model,serial_number,vin作为属性
现在我有一个自定义验证来检查vin如果vin不存在,以检查数据库中make + model + serial_number唯一性的组合
validate:combination_vin,:if =>"vin.nil?"
def combination_vin
if Product.exists?(:make => make,:model => model,:serial_number => serial_number)
errors.add(:base,"The Combination of 'make+model+serial_number' already present")
end
end
Run Code Online (Sandbox Code Playgroud)
我想在此验证器中针对user_id引入一个范围
现在我知道我可以轻松地写这个以实现相同的使用
def combination_vin
if Product.exists?(:make => make,:model => model,:serial_number => serial_number,:user_id => user_id)
errors.add(:base,"The Combination of 'make+model+serial_number' already present")
end
end
Run Code Online (Sandbox Code Playgroud)
但出于好奇,我想在自定义验证上有一个范围验证器(类似{:scope =>:user_id}),这样我就不必在存在中传递额外的user_id了吗?哈希
谢谢
validation ruby-on-rails ruby-on-rails-3 rails-3.1 ruby-on-rails-3.2
celluloid ×3
ruby ×3
devise ×2
zeromq ×2
carrierwave ×1
html5 ×1
ios ×1
iphone ×1
overriding ×1
rails-3.1 ×1
redis ×1
registration ×1
ruby-2.2 ×1
sockets ×1
validation ×1