什么是让用户使用他们的电子邮件地址或用户名登录的最佳方式?我正在使用warden + devise进行身份验证.我认为这可能不会太难,但我想我需要一些建议,在哪里放置所需的所有东西.也许设计已经提供了这个功能?就像在config/initializers/devise.rb中一样,你会写:
config.authentication_keys = [ :email, :username ]
Run Code Online (Sandbox Code Playgroud)
要求用户名和电子邮件都可以登录.但我真的希望只有一个字段用于用户名和电子邮件,并且只需要其中一个.我只是想象一下使用某些ASCII艺术,它应该在视图中看起来像这样:
Username or Email:
[____________________]
Password:
[____________________]
[Sign In]
Run Code Online (Sandbox Code Playgroud) 我正在玩模式匹配,我发现,将方法的匹配参数与空映射进行模式化并不容易.我认为它会是这样的:
defmodule PatternMatch do
def modify(%{}) do
%{}
end
def modify(map) do
# expensive operation
%{ modified: "map" }
end
end
Run Code Online (Sandbox Code Playgroud)
但似乎第一个函数子句匹配任意映射:
iex> PatternMatch.modify(%{a: "map"})
==> %{}
Run Code Online (Sandbox Code Playgroud)
还有另一种检查空地图的方法吗?
这条线
p *1..10
Run Code Online (Sandbox Code Playgroud)
完全一样的事情
(1..10).each { |x| puts x }
Run Code Online (Sandbox Code Playgroud)
它给你以下输出:
$ ruby -e "p *1..10"
1
2
3
4
5
6
7
8
9
10
Run Code Online (Sandbox Code Playgroud)
例如,与textmate合作时,这是一个很好的捷径,但是星号是做什么的?这是如何运作的?在网上找不到任何东西......
jQuery可以为失败的AJAX调用提供回退吗?这是我的尝试:
function update() {
var requestOK = false;
$.getJSON(url, function(){
alert('request successful');
requestOK = true;
});
if (!requestOK) {
alert('request failed');
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,即使调用$ .getJSON()方法的回调函数,在回调函数有机会设置requestOK变量之前,我得到消息'request failed'.我认为这是因为代码并行运行.有没有办法处理这种情况?我想过链接或某种等待AJAX请求的方式,包括它的回调函数.但是怎么样?有谁知道这是怎么做到的吗?
红宝石中的神奇评论如何运作?我在说:
# Encoding: utf-8
Run Code Online (Sandbox Code Playgroud)
这是一个预处理指令吗?这种结构还有其他用途吗?
我想动态创建一个函数名.我写了这个宏
defmacro generate_dynamic(name) do
quote do
def add_(unquote(name)) do
end
end
end
Run Code Online (Sandbox Code Playgroud)
我用它是这样的:
defmodule AnotherModule do
generate_dynamic :animal
end
Run Code Online (Sandbox Code Playgroud)
现在,我只得到AnotherModule.add_函数定义,而我期望AnotherModule.add_animal函数.
我试图让多个选择与phoenix_html表单助手一起工作
<%= select f, :challenge_ids, ["foo": "1","bar": "2","baz": "3"], class: "form-control", multiple: "" %>
Run Code Online (Sandbox Code Playgroud)
但只有最后一个选定项目的id才会被发送到params中的服务器
%{"challenge_ids" => "3", "content" => "", "name" => ""}
Run Code Online (Sandbox Code Playgroud)
我也尝试过:challeng_ids改为:"challenge_ids[]"试图获得类似于多选标记的rails输出的东西,但这没有任何区别
我在iOS 5中使用Core Graphics绘制了一个简单的路径:
CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint( path, NULL, center.x , topMargin );
CGPathAddLineToPoint(path, NULL, center.x+20, topMargin+50);
CGPathAddLineToPoint(path, NULL, center.x , topMargin+40);
CGPathAddLineToPoint(path, NULL, center.x-20, topMargin+50);
CGPathAddLineToPoint(path, NULL, center.x , topMargin );
Run Code Online (Sandbox Code Playgroud)
现在我想填写Overlay模式,如下所示:
[[UIColor colorWithRed:0 green:0 blue:0 alpha:0.4] setFill];
CGContextAddPath(context, path);
CGContextSetBlendMode (context, kCGBlendModeOverlay);
CGContextFillPath(context);
Run Code Online (Sandbox Code Playgroud)
这给了我完全预期的结果.但接下来,我想创造一个浮雕效果.我想过使用白色和黑色阴影来实现这样的效果:
[[UIColor colorWithRed:0 green:0 blue:0 alpha:0] setFill];
CGContextAddPath(context, path);
CGContextSetShadowWithColor(context, CGSizeMake(1, 1), 1.0, highlightColor);
CGContextSetBlendMode (context, kCGBlendModeNormal);
CGContextFillPath(context);
[[UIColor colorWithRed:0 green:0 blue:0 alpha:0] setFill];
CGContextAddPath(context, path);
CGContextSetShadowWithColor(context, CGSizeMake(-1, -1), 1.0, shadowColor);
CGContextSetBlendMode (context, kCGBlendModeNormal); …Run Code Online (Sandbox Code Playgroud) 无论在iex>或使用mix run -e "My.code"当我运行使用外生混合项目中,外生的调试机制显示像下面一堆sql语句的
16:42:12.870 [debug] SELECT a0.`id` FROM `account` AS a0 WHERE (a0.`account_name` = ?) ["71000000313"] (39.6ms)`
...
Run Code Online (Sandbox Code Playgroud)
当我不再需要调试输出时,如何关闭它,我找不到任何关于如何更改ecto日志级别的东西.
提前致谢.