这可以追溯到我对Neo4J Gem 的问题 - 保存未声明的关系
在文档中,他们举了一个例子
post.comments = [comment1, comment2] # Removes all existing relationships
post.comments << comment3 # Creates new relationship
据我了解,第一行将删除所有关系,因为它手动将所有关联的评论设置为comment1,comment2。
但是第 2 行是做什么的呢?post.comments
应该检索与帖子相关的评论。因此,它似乎正在与 comment3 和其他评论建立关系。但是我们不想在帖子和评论之间建立关系吗?
要么我不理解语法及其在做什么,要么写的内容不清楚发生了什么。
看我的例子,我们有
def create
@event_question = EventQuestion.new(event_question_params)
if @event_question.save
event = Event.find(params[:event_id])
@event_question.update(admin: current_user.facebook_id)
@event_question.events << event
redirect_to @event
else
redirect_to :back
end
end
如果event
是我的事件节点并且@event_question
是我的 event_question 节点,为什么要@event_question.events << event
在我的 event_question 和 event 之间创建关系?
现在undefined method '<<' for nil:NilClass
,我的控制器中有一个,这完全是另一个问题。
我的 event.rb 有
has_many :in, :event_questions, type: 'questions_of'
我的 event_question.rb 有
has_one :out, :events, origin: :event_questions
@event_question
两者event
都存在但@event_question.events
将返回 nil