小编Mat*_*ggs的帖子

如何使用 Devise 和 Rails 3 实现渐进式参与?

我正在尝试使用 Devise + Rails 实现延迟注册(又名延迟身份验证,又名渐进式参与)网站流程。

通过逐步参与,我的意思是

“在用户绝对必须登录之前不要让她登录,而要让她玩转并在网站上被记住”

我正在寻找一种简单的方法来使用devise来做到这一点。我觉得这是许多其他人不得不做的事情,但我还没有找到关于它的文档。

以下方法在我的脑海中听起来不错,所以我将开始:

  1. 创建仅“可记住”的用户
  2. 当访问某些页面时,要求这些用户有更多的数据,比如用户名和密码,通过类似“before_filter :authenticate_user!”之类的东西。在适当的控制器中。

这种方法有意义吗?有没有更好的?您是否愿意分享使用 Devise + Rails 的渐进式参与方法来注册/注册表格?

ruby-on-rails ruby-on-rails-plugins devise

5
推荐指数
1
解决办法
748
查看次数

ASP.net WebForms是CPU密集型平台吗?

我在asp.net商店工作,今天我听说我们服务器上的瓶颈是CPU.我一直认为webapps往往是CPU之前的I/O和网络绑定.这是ASP.net/IIS的事吗?这是我们的代码吗?或者我对整件事情完全错了?

此外,我们使用网络表单公开面对社交/商务网站.不是CPU负载是一个问题或任何东西,我们的服务器当前可以处理负载.我刚刚发现它令人惊讶,因为根据我对Web应用程序的理解,大多数时候CPU在扩展时不是问题,特别是在具有像.NET这样的快速运行时的编译语言上.

asp.net performance web-applications

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

Ruby:使用默认键+数组值创建哈希值

我相信之前在一个稍微不同的背景下已经被问过/回答了,我已经看到了一些与此类似的例子的答案 - 但似乎没有任何东西完全适合.

我有一系列的电子邮件地址:

@emails = ["test@test.com", "test2@test2.com"]
Run Code Online (Sandbox Code Playgroud)

我想从这个数组中创建一个哈希,但它必须如下所示:

input_data = {:id => "#{id}", :session => "#{session}", 
              :newPropValues => [{:key => "OWNER_EMAILS", :value => "test@test.com"} , 
                                 {:key => "OWNER_EMAILS", :value => "test2@test2.com"}]
Run Code Online (Sandbox Code Playgroud)

我认为哈希ArrayHash内部让我失望.但我周围玩inject,update,merge,collect,map和有没有运气产生这种类型的动态哈希需要创建基于多少个单元@emails阵列.

有没有人对如何解决这个问题有任何建议?

ruby arrays hash

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

STM并改变clojure

我正在编写"Clojure编程"一书.在解释alter和STM时,他们说如果在更改期间,Clojure检测到来自事务外部的ref的更改,它将使用新值重新运行事务.如果是这种情况,我会想象你传递的更新函数需要是纯粹的,但是文档中没有指出(并且它在其他类似的情况下).

我的假设是正确的吗?如果没有,STM如何重新应用该功能?如果它是正确的,那么您是否可以依靠文档告诉您何时可以产生副作用,何时不能?

clojure stm

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

如何在rails3中使用amistad gem?

我需要有关如何在rails3应用程序中实现AMISTAD gem的帮助.请提出一些教程或观点?我看到github amistad链接.但我希望全面报道这个宝石.请帮我.

rubygems ruby-on-rails

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

有人可以为我解释ruby常量查找吗?

进一步来说:

  • 你什么时候需要在范围前加上::(比如::Foo::Bar)
  • 什么时候直接引用一个scoped const ok?(只是Foo::Bar)
  • 这种行为是如此混乱有充分的理由吗?

编辑:我在谈论这样的事情

module Foo
  THING = 'thing'
  module Bar
    puts THING
  end
end
#=> thing

module Foo::Bar
  puts THING
end
#=> NameError: uninitialized constant Foo::Bar::THING
Run Code Online (Sandbox Code Playgroud)

ruby constants

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

LINQ Aggregate与嵌套的foreach

我想要实现:

foreach (ScheduleItem s in ScheduleItems)
{
    foreach (IScheduleModule m in s.ScheduleModules)
    {
        yield return m;
    }
}
Run Code Online (Sandbox Code Playgroud)

使用LINQ聚合,我不明白为什么

return ScheduleItems.Aggregate(new Collection<IScheduleModule>(), (x, o) => x.Union(o.ScheduleModules) as Collection<IScheduleModule>);
Run Code Online (Sandbox Code Playgroud)

返回null.

我没有使用嵌套foreach的问题,但我的直觉是使用聚合,我不明白为什么它不会产生相同的结果.

还有其他方法吗?在可读性和性能方面最好的是什么?

linq aggregate

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

在 emacs 的字符串中突出显示 ""

我有点像 emacs 菜鸟,但不太确定如何找到它。我使用日光化浅色主题,这是一个低对比度主题,带有智能口音以保持可读性。他们在 vim 版本中做的一件事是突出显示字符串定界符(在某些语言中意味着双引号和单引号)与字符串的其余部分不同,以使它们更加突出。

主题的 emacs 端口没有这个,但是我看到字体锁定机制发生了一些非常疯狂的事情(例如http://www.emacswiki.org/emacs/HexColour),所以我认为这是可能的。

那么是否可以突出显示字符串分隔符?如果是这样,我应该在哪里寻找有关如何操作的更多信息?

编辑:

试图让 Jon O. 的答案起作用。首先我试过

(defface my-string-delimiter-face
  '((t (:foreground "red" :weight bold)))
   "My custom face for string delimiters")

(add-hook 'after-change-major-mode-hook 
          (lambda () 
            (font-lock-add-keywords nil '(("\\s\"\\|\\s|" 0 solarized-string-delimiter-face t)))))
Run Code Online (Sandbox Code Playgroud)

试图将其添加到每种模式(不起作用)

然后我尝试用

(font-lock-add-keywords 'emacs-lisp '(("\\s\"\\|\\s|" 0 solarized-string-delimiter-face t)))
Run Code Online (Sandbox Code Playgroud)

为了让事情正常工作,同样的事情(没有工作)

emacs font-lock

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

帮我把这个noob代码更加惯用

所以我使用congomongo(接近结尾的fetch函数)从mongodb集合中提取一些文档.我想将选项传递给fetch调用,所以我可以做类似的事情(posts :limit 1)并且已经{:limit 1}传递给fetch.我正在手动"memoization" @posts,因为我希望能够重置缓存,这对我的理解是不能完成的clojure.core/memoize.

现在,我在这里看到的问题是,(fetch :posts options)调用非常简单,如果dosync必须重试事务,我真的不想锤击我的数据存储区.我虽然是一个完全的clojure/fp noob,我不知道如何解决这个问题.此外,由于我是一个菜鸟,如果我在这里做任何让你畏缩的事情,我很想知道如何正确地写这个.

(def posts (ref nil))
(defn reset-posts [] (dosync alter posts nil))

(defn fetch-posts [& options]
  (let [options (apply array-map options)]
    (or @posts
        (dosync alter posts (fetch :posts options)))))
Run Code Online (Sandbox Code Playgroud)

clojure

2
推荐指数
1
解决办法
277
查看次数

分裂咕噜咕噜的手表任务

所以我有5个grunt-contrib-watch任务:

  • sass编译sass文件
  • testConcat进行concat测试
  • implementationConcat用于concat实现文件的测试
  • 用于预编译车把模板的模板
  • 业力开始业力测试运行

我知道grunt watch会看到所有这些,但我真的需要将它们分成两组 - 前四个用于我的设计师运行静态服务器并执行sass工作,最后两个用于我在做js工作的时候.

我正在使用grunt-concurrent它们将它们分开并同时运行它们,但是虽然这有效,但它似乎有点像黑客.我错过了什么吗?

javascript gruntjs grunt-contrib-watch grunt-concurrent

2
推荐指数
1
解决办法
1151
查看次数