Rails在哪里使用自定义模型方法

时间:2015-06-30 03:20:15

标签: ruby-on-rails activerecord notifications rails-activerecord where

我使用的是Rails 4并拥有notifsusers模型。

每个notif has_many users(又名user已见过notif)。我试图获取current_user未见过的所有通知。为了检查current_user是否已经看过我使用此模型类的通知:

def seen_by?(u)
  return self.users.include?(u)
end

如何使用通话获取seen_by(current_user)true的所有通知?

类似的东西:

Notif.where(seen_by(current_user): true)

1 个答案:

答案 0 :(得分:0)

基本上,您需要在此处使用反联接模式,例如,可以使用js_link_regex = /href=\"javascript:show\('([^']+)','[^']+',%20'([^']+)'\)/ link = <<eos <li id="l_f6a1ok3n4d4p" class="online"> <div class="link"> <a href="javascript:show('f6a1ok3n4d4p','random%20strings%204',%20'site2.com');%20" onclick="visited('f6a1ok3n4d4p');" style="float:left;">random strings - 4</a> <a style="float:left; display:block; padding-top:3px;" href="http://www.webtrackerplus.com/?page=flowplayerregister&amp;a_aid=&amp;a_bid=&amp;chan=flow"><img border="0" src="/resources/img/fdf.gif"></a> <!-- a class="none" href="#">random strings - 4 site2.com - # - </a --> </div> <div class="params"> <span>Submited: </span>7 June 2015 | <span>Host: </span>site2.com </div> <div class="report"> <a title="" href="javascript:report(3191274,%203,%202164691,%201)" class="alert"></a> <a title="" href="javascript:report(3191274,%203,%202164691,%200)" class="work"></a> <b>100% said work</b> </div> <div class="clear"></div> </li> <li id="l_zsgn82c4b96d" class="online"> <div class="link"> <a href="javascript:show('zsgn82c4b96d','random%20strings%204',%20'site1.com');%20" onclick="visited('zsgn82c4b96d');" style eos matches = link.scan(js_link_regex) matches.each do |match| puts "http://#{match[1]}/#{match[0]}" end / left joinis nullnot in/subquery检查执行此模式。第一个问题是,如果没有原始sql(或重写关联),则无法在not exists/subquery子句中指定条件。因此,您可以使用on和单独的查询方法:

not in