我正在开发一个rails web应用程序,它还为移动设备提供基于JSON的API.移动客户端应首先获得带有(email/pass)的令牌,然后客户端将使用令牌进行后续API调用.
我是Devise的新手,我正在寻找一个Devise API看起来authenticate(email, pass)
并期望它返回true/false,然后根据我将创建并交回令牌或返回拒绝消息.但似乎Devise没有提供这样的东西.
我知道Devise 1.3提供了基于JSON的auth,但这与我需要的有点不同 - 我需要生成令牌并处理回客户端,然后在使用令牌完成auth之后.
有人可以给点指点吗?
我发现在我看到的所有示例(包括rails文档)中:验证方法的if选项使用Proc.new而不是lambda,例如
class Foo < ActiveRecord::Base
validates_presence_of :name, :if => Proc.new{|f| .... } # why not lambda here?
end
Run Code Online (Sandbox Code Playgroud)
这有什么理由吗?据我所知,lambda
两者似乎都是理想的行为:如果上面提到的选项,我有什么遗漏?
在以下Ruby代码中:
#! /usr/bin/env ruby
require 'debugger'
def hello
puts "hello"
if block_given?
yield
end
end
def main
debugger
puts "test begin..."
hello do # <= if you are here
puts "here!" #<= how to get here without setting bp here or step into hello?
end
end
main
Run Code Online (Sandbox Code Playgroud)
这在调试过程中很常见,我不关心产生块的函数的实现,我只是想直接进入块,而不需要在那里手动设置断点.
在ruby-debug19或调试器中是否存在对这种"步入块"的支持?
有人可以解释什么是出口变量:
从backbone.js复制,我也注意到spine.js使用相同的模式.
https://gist.github.com/1375748
var Backbone;
if (typeof exports !== 'undefined') {
Backbone = exports;
} else {
Backbone = root.Backbone = {};
}
Run Code Online (Sandbox Code Playgroud) 我有一条线
set cpoptions+=$ "add the '$' sign as change command indicator
Run Code Online (Sandbox Code Playgroud)
在我的.vimrc文件中,但是在启动vim之后
set cpoptions?
Run Code Online (Sandbox Code Playgroud)
显示未设置'$'选项.如果我输入:在vim中手动设置cpoptions + = $一切正常.
我怀疑在vim初始化期间,在我的.vimrc文件中的行被执行后,该选项以某种方式被重置(可能是一个插件).
我的问题是,vim是否提供命令/工具来调试这样的问题?
我在Mac OS X上使用vim(不是 MacVim).
谢谢!
-Xiaotian
我在用 -
我的路径文件如下所示:
Foo::Application.routes.draw do
devise_for :admins
root :to => "home#index"
authenticate :admin do
mount Simple::App, at: '/simple'
end
end
Run Code Online (Sandbox Code Playgroud)
/ simple下的访问需要进行身份验证.
但是,如果没有登录,访问/ simple/*将重定向到/ simple/admin/sign_in而不是/ admin/sign_in,这将创建一个重定向循环.
我是否需要创建自定义failure_app来纠正此行为?
谢谢!
根据Ruby Hash/Array文档,delete_if
如果没有给出块,该方法返回一个枚举器.这有用吗?有人能举例说明这种模式吗?
在我的一个Rails 3控制器中,我需要在模型上只返回几个属性的jSON响应,所以我使用了
respond_with foo_list :only => [:id, :name], :methods => []
Run Code Online (Sandbox Code Playgroud)
但仍然在resposne我看到的不仅仅是这两个属性,我注意到那些不受欢迎的属性实际上是从查询选择函数生成的动态属性:
foo_list = Foo.select("count(bar) as dattr1, sum(adafsd) as dattr2")....
Run Code Online (Sandbox Code Playgroud)
有办法解决这个问题吗?或者我必须自己构建哈希?
谢谢!
有人可以告诉我为什么第7行(if语句)会产生错误:
test.sh: line 7: [: command_exists: unary operator expected
Run Code Online (Sandbox Code Playgroud)
谢谢!
#!/usr/bin/env bash
command_exists () {
command -v "$1" &> /dev/null ;
}
if [ ! command_exists ruby ]; then # test.sh: line 7: [: command_exists: unary operator expected
echo 'found ruby'
else
echo 'ruby not found'
fi
Run Code Online (Sandbox Code Playgroud)