我正在尝试使用 Devise + Rails 实现延迟注册(又名延迟身份验证,又名渐进式参与)网站流程。
通过逐步参与,我的意思是
“在用户绝对必须登录之前不要让她登录,而要让她玩转并在网站上被记住”
我正在寻找一种简单的方法来使用devise来做到这一点。我觉得这是许多其他人不得不做的事情,但我还没有找到关于它的文档。
以下方法在我的脑海中听起来不错,所以我将开始:
- 创建仅“可记住”的用户
- 当访问某些页面时,要求这些用户有更多的数据,比如用户名和密码,通过类似“before_filter :authenticate_user!”之类的东西。在适当的控制器中。
这种方法有意义吗?有没有更好的?您是否愿意分享使用 Devise + Rails 的渐进式参与方法来注册/注册表格?
我在asp.net商店工作,今天我听说我们服务器上的瓶颈是CPU.我一直认为webapps往往是CPU之前的I/O和网络绑定.这是ASP.net/IIS的事吗?这是我们的代码吗?或者我对整件事情完全错了?
此外,我们使用网络表单公开面对社交/商务网站.不是CPU负载是一个问题或任何东西,我们的服务器当前可以处理负载.我刚刚发现它令人惊讶,因为根据我对Web应用程序的理解,大多数时候CPU在扩展时不是问题,特别是在具有像.NET这样的快速运行时的编译语言上.
我相信之前在一个稍微不同的背景下已经被问过/回答了,我已经看到了一些与此类似的例子的答案 - 但似乎没有任何东西完全适合.
我有一系列的电子邮件地址:
@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)
我认为哈希Array的Hash内部让我失望.但我周围玩inject,update,merge,collect,map和有没有运气产生这种类型的动态哈希需要创建基于多少个单元@emails阵列.
有没有人对如何解决这个问题有任何建议?
我正在编写"Clojure编程"一书.在解释alter和STM时,他们说如果在更改期间,Clojure检测到来自事务外部的ref的更改,它将使用新值重新运行事务.如果是这种情况,我会想象你传递的更新函数需要是纯粹的,但是文档中没有指出(并且它在其他类似的情况下).
我的假设是正确的吗?如果没有,STM如何重新应用该功能?如果它是正确的,那么您是否可以依靠文档告诉您何时可以产生副作用,何时不能?
我需要有关如何在rails3应用程序中实现AMISTAD gem的帮助.请提出一些教程或观点?我看到github amistad链接.但我希望全面报道这个宝石.请帮我.
进一步来说:
::(比如::Foo::Bar)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) 我想要实现:
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的问题,但我的直觉是使用聚合,我不明白为什么它不会产生相同的结果.
还有其他方法吗?在可读性和性能方面最好的是什么?
我有点像 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)
为了让事情正常工作,同样的事情(没有工作)
所以我使用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) 所以我有5个grunt-contrib-watch任务:
我知道grunt watch会看到所有这些,但我真的需要将它们分成两组 - 前四个用于我的设计师运行静态服务器并执行sass工作,最后两个用于我在做js工作的时候.
我正在使用grunt-concurrent它们将它们分开并同时运行它们,但是虽然这有效,但它似乎有点像黑客.我错过了什么吗?