我的webapp已注册用户,它也有文章,博客文章,闲话.对于所有这些资源,我有一个多态的Comment模型,如下所示.
id content commentable_id commentable_type user_id created_at updated_at
1 Frist comment 2 Article 1 ....
2 Second comment 3 Post 2 .....
Run Code Online (Sandbox Code Playgroud)
因此,对于每个可评论资源,我在可评论资源的底部都有一个评论表单供用户评论.我想要一个复选框,在提交评论时检查时,用户应该收到通知,无论是收件箱还是电子邮件,因为我们已经在用户注册时收到通知,之后会添加其他新评论.
我希望有一些像Notifications这样的模型,我可以存储commentable_type,commentable_id和user_id(如果有匹配的commentable和user创建了新的评论,应该向谁发送通知?
如何实现评论和通知之间的关联?对于检查部分,如果有任何一个订阅特定可注释资源,则创建一个带有after_create挂钩的CommentObserver来初始化搜索,并在有任何匹配记录时发送通知.
但我很困惑协会,模型,控制器和视图会是什么样子才能实现这一目标?由于评论模型已经是多态的,我可以将Notification模型创建为多态吗?
以下是1对M型号:
class FotoGossip < ActiveRecord::Base
has_many :uploads
attr_accessible :published_at, ...
end
class Upload < ActiveRecord::Base
belongs_to :foto_gossip
end
Run Code Online (Sandbox Code Playgroud)
现在我想要Uploads.all的条件:published_at NOT NULL相应上传的父模型?
我正在使用Mechanize从页面中提取链接.为了简化开发,我使用fakeweb进行超高速响应,以减少等待和烦扰每个代码运行.
tags_url = "http://website.com/tags/"
FakeWeb.register_uri(:get, tags_url, :body => "tags.txt")
agent = WWW::Mechanize.new
page = agent.get(tags_url)
page.links.each do |link|
puts link.text.strip
end
Run Code Online (Sandbox Code Playgroud)
当我运行上面的代码时,它说:
nokogiri_test.rb:33: undefined method `links' for #<WWW::Mechanize::File:0x9a886e0> (NoMethodError)
Run Code Online (Sandbox Code Playgroud)
检查页面对象的类后
puts page.class # => File
Run Code Online (Sandbox Code Playgroud)
如果我没有伪造出tags_url,它就起作用,因为页面类现在是Page
puts page.class # => Page
Run Code Online (Sandbox Code Playgroud)
那么,如何使用机械化的fakeweb来返回Page而不是File对象呢?
我有以下字符串.如何使用ruby正则表达式从中提取出"somesite.com/2009/10/monit-on-ubuntu/"部分?
http://linkto.com/to/1pyTZl/somesite.com/2009/10/monit-on-ubuntu/t
Run Code Online (Sandbox Code Playgroud)
常见的是,以"/ to/some-alpha-num"开头,并始终以"/ t"结尾
以下resp是与结构中的哈希类似的字符串.
(rdb:1) p resp
"{\"_id\":\"4dd4eaa872f8be2d380000af\",\"account_id\":\"4dd0d71272f8be0499000009\",\"created_at\":\"2011-05-19T15:47:16+05:45\",\"line_id\":\"4dd4ea9d72f8be2d380000a5\",\"order\":{\"_id\":\"4dd4eaa872f8be2d380000b9\",\"amount\":1.2000000000000002,\"service_charge\":0.0},\"owner_id\":\"4dd0d71272f8be0499000008\",\"tenant_id\":\"4dca3f8e72f8be2950000003\",\"through_api\":true,\"title\":\"run name\",\"updated_at\":\"2011-05-19T15:47:16+05:45\"}"
Run Code Online (Sandbox Code Playgroud)
如何将其转换为哈希?
在Rails 3应用程序中运行rufus-scheduler不会出现任何问题。
但是由于我的应用程序在节点集群app1.myapp.com-app2.myapp.com中运行,因此rufus-scheduler运行作业app(N)次。
如何使其只能在一台服务器上运行?