我的应用包含许多Users
,其中每个User
都有很多Questions
为什么我需要这样做
现在,我们希望能够将一些Messages
挖掘到Questions
。这很复杂,因为并非所有Messages
都属于Question
。这是一个例子:
- = Not (really) a question
x = Belongs to question x
y = Belongs to question y
[-] Hey
[-] Hey, what's up?
[x] Not much. Hey, what's a good movie to see tonight?
[x] How about Star Wars?
[x] Great idea! Thanks.
[-] You bet.
[-] Star wars is awesome.
[-] Yeah it is.
[-] Hey I have another question
[-] Shoot
[y] Where should I go on vacation this summer?
[y] Go to France, it's beautiful.
[y] Yeah, I'll go to France.
[-] Any other questions?
[-] No, but thanks for your help.
需要发生什么
作为最终结果,我希望看到一个消息流并标记出问题的一部分,如上所述。所以做一些像
这样的事情会很好@messages.each do |message|
if not message.question.blank?
...
我想标记问题的类别(属性Question
)。
@message.question.update(category: 3)
我还想查看一个问题并对其应用类别,以便我可以提取类似的内容:
p = @question.category
ul
@question.messages.each do |message|
li = message.content
我担心的是,邮件根本不会与问题有关。那么我应该如何构建我的数据?
更新
我忘了提到的另一件事是数据应该最终输出为JSON。
答案 0 :(得分:1)
基本上你想要做的是在Message
中创建一些方法来处理整个if question.present?
检查,例如。
class Message < ActiveRecord::Base
belongs_to :question
def category
question.try(:category) || "-"
end
# ...
end
那么你可以在你的视图中做这样的事情:
@messages.each do |m|
= "[#{m.category}] #{m.text}"