小编Aut*_*act的帖子

在rails中向用户发送评论通知?

我的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模型创建为多态吗?

ruby notifications comments ruby-on-rails

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

Rails根据父模型属性过滤子模型的记录

以下是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相应上传的父模型?

activerecord ruby-on-rails associations has-many

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

使用FakeWeb进行机械化

我正在使用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 ruby-on-rails mechanize

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

ruby正则表达式和从字符串中提取

我有以下字符串.如何使用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"结尾

ruby regex

0
推荐指数
1
解决办法
797
查看次数

如何在ruby中将类似字符串的哈希转换为哈希?

以下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)

如何将其转换为哈希?

ruby hash

0
推荐指数
1
解决办法
3857
查看次数

在多个节点上运行rufus Scheduler问题?

在Rails 3应用程序中运行rufus-scheduler不会出现任何问题。

但是由于我的应用程序在节点集群app1.myapp.com-app2.myapp.com中运行,因此rufus-scheduler运行作业app(N)次。

如何使其只能在一台服务器上运行?

ruby rufus-scheduler ruby-on-rails-3

0
推荐指数
1
解决办法
371
查看次数