小编Pat*_*ity的帖子

RoR Devise:使用用户名或电子邮件登录

什么是让用户使用他们的电子邮件地址或用户名登录的最佳方式?我正在使用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)

authentication ruby-on-rails devise

59
推荐指数
4
解决办法
3万
查看次数

在Elixir中,如何将范围转换为列表?

我可以声明一个范围如下:

range = 1..10
Run Code Online (Sandbox Code Playgroud)

有没有办法将范围转换为列表?

elixir

47
推荐指数
4
解决办法
1万
查看次数

模式匹配功能对空地图

我正在玩模式匹配,我发现,将方法的匹配参数与空映射进行模式化并不容易.我认为它会是这样的:

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)

还有另一种检查空地图的方法吗?

elixir pattern-matching

45
推荐指数
3
解决办法
1万
查看次数

ruby:"p*1..10"中的星号是什么意思

这条线

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合作时,这是一个很好的捷径,但是星号是做什么的?这是如何运作的?在网上找不到任何东西......

ruby operators range

37
推荐指数
1
解决办法
8574
查看次数

jQuery:处理失败的AJAX请求的后备

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​​请求的方式,包括它的回调函数.但是怎么样?有谁知道这是怎么做到的吗?

ajax jquery json callback wait

37
推荐指数
2
解决办法
11万
查看次数

ruby中的魔术评论(#编码:utf-8)如何工作?

红宝石中的神奇评论如何运作?我在说:

# Encoding: utf-8
Run Code Online (Sandbox Code Playgroud)

这是一个预处理指令吗?这种结构还有其他用途吗?

ruby encoding

35
推荐指数
3
解决办法
2万
查看次数

如何使用Elixir宏创建动态函数名称?

我想动态创建一个函数名.我写了这个宏

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函数.

elixir

34
推荐指数
3
解决办法
7440
查看次数

如何使用phoenix_html发布具有多个选择表单字段的ID集合

我试图让多个选择与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输出的东西,但这没有任何区别

elixir phoenix-framework

25
推荐指数
1
解决办法
2592
查看次数

iOS核心图形:仅绘制CGPath的阴影

我在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)

core-graphics objective-c shadow cgpath ios

20
推荐指数
1
解决办法
7393
查看次数

禁用Elixir Ecto Debug输出

无论在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日志级别的东西.

提前致谢.

debugging elixir ecto

18
推荐指数
4
解决办法
7278
查看次数