延迟::作业的自动重试功能很棒,但我现在需要手动重试这项工作.有没有一种方法我可以在工作本身上调用...
Delayed::Job.all[0].perform
Run Code Online (Sandbox Code Playgroud)
或跑步,或某事.我尝试了一些东西,并梳理了文档,但无法弄清楚如何执行手动重试作业.
使用JSON对象和jQuery-rails(jQuery库加上特殊的rails.js文件)进行Rails(3)的典型AJAX调用没有任何问题.
但是,在一个控制器中,我想在AJAX调用之后在erb模板(create.js.erb)中返回一些JSON.
我已经尝试了控制器中的每一个组合(@ object.to_json,'[{"content":"hello world"}]'等等)和模板本身(JSON.parse(),单引号,双引号等),但对象继续这样渲染:
'[{"groups":{},"created_at":"2010-09-21T03:49:34Z" ...
Run Code Online (Sandbox Code Playgroud)
结果,我的jQuery代码无法解析它,我得到错误.
我如何在控制器中准备我的对象,以及在视图中我需要什么erb语法才能呈现为有效的JSON对象?
非常感谢!
我有:
folder_a/app_1.0
folder_b/app_1.1
Run Code Online (Sandbox Code Playgroud)
让我们说我正在两个文件夹/回购中的主分支工作.
如何将分支合并在一起?
我成功地使用了MongoMapper对原子"$ push"和"$ set"的内置支持,但无法弄清楚"$ pull"
class Feed
include MongoMapper::Document
many :stories
end
class Story
include MongoMapper::EmbeddedDocument
key :title, String
end
feed = Feed.first
story = Story.new(:title => "Hello, world!")
Feed.push(feed.id, :stories => story.to_mongo) #works fine
Feed.set({:_id => feed.id, "stories.title" => "Hello, world!"}, "stories.$.title" => "Foo") #works fine
Feed.pull( ??? )
Run Code Online (Sandbox Code Playgroud)
如何使用拉动原子地删除故事?
我想将用户搜索自动完成(如Facebook的)添加到Heroku上的Rails应用程序中,由于并发要求,我选择在Node.js中编写它.搜索首先从Mongo中提取用户的朋友列表(id,包括所有Twitter朋友,而不仅仅是他们在我们网站上的朋友),然后在该列表中搜索用户,然后再搜索与该查询匹配的任何其他用户没有在朋友搜索返回的结果中.
这开始时速度相当快(约150毫秒),但对于拥有更多朋友的用户(比如说,总共100个),加载他们的朋友阵列最终成为一个巨大的瓶颈,线性地将搜索速度降低到最大约1500毫秒对于拥有1,000个朋友的用户(自动填充朋友搜索支持的最大数量).
问题是,我对Node.js和Express(它类似Sinatra的Web框架)完全陌生,我不知道如何缓存friends数组,所以我只需要加载一次(理想情况下加载到内存中).在Heroku上的Rails中,我只是将数组加载到Memcache中,但我甚至不确定如何在Node/Express中配置Memcache,更不用说如果在Heroku上支持它.
有任何想法吗?
(另请注意,我是所有这些查询的多键索引,包括朋友ID)
当我有2个视图片段缓存相同的查询但是以不同方式显示它们时,只有一个片段,它们都以相同的方式显示它们.有没有办法解决?例如...
#views/posts/list
- cache(@posts) do
- for p in @posts
= p.title
#views/posts/list_with_images
- cache(@posts) do
- for p in @posts
= p.title
= p.content
= image_tag(p.image_url)
#controllers/posts_controller
def list
...
@posts = Post.all
end
def list_with_images
...
@posts = Post.all
end
Run Code Online (Sandbox Code Playgroud)