我有三个表:研究员,mappingtabl,模型Fellow中具有many_to_many关联的事件,以访问某个人的事件。 就像一个人一样可以参加多项活动,许多人也会参加活动..
我发现在没有自己编码的情况下过滤事件真的很难,或者我无法理解续集文档:
我想要一个特定家伙的未来事件清单......
@fellow=Fellow[PersID: @pers_id, JourneyID: @journey_id]
@events=@fellow.events_dataset.where(Ruby: 'calc')
@events=@events.where{StartDate > Time.now()}
问题是,输出是:未初始化的常量App :: StartDate 而“开始日期”#39;是DB中的相应列我理解Ruby透视图的输出。我从来没有告诉过块StartDate是什么,另外它认为它是一个常量
如何告诉续集比较Field events.StartDate中存储的时间并将其与Time.now进行比较? 直接选择上面一行使用哈希值对完美...
这些文档并不是很有用,因为它们做的很简单:
items.where{credit > debit}.sql
# "SELECT * FROM items WHERE (credit > debit)
没有人告诉该区块有哪些信用卡或借记卡......
如何在where子句的事件中访问Field StartDate?我可以迭代我自己但这有点奇怪......如果数据集直接链接到表或只是关联的结果,它会产生影响。
答案 0 :(得分:0)
@事件= @ events.where {事件[:开始日期]> Time.now()}
密钥隐藏在续集虚拟行文档中......
答案 1 :(得分:0)
您可以使用以下其中一项:
@events=@events.where{StartDate() > Time.now()}
@events=@events.where{self.StartDate > Time.now()}
@events=@events.where{|o| o.StartDate > Time.now()}
@events=@events.where(Sequel[:StartDate] > Time.now)