我正在尝试在两个节点之间创建一个关系,如此处所述
https://github.com/neo4jrb/neo4j/wiki/Neo4j-v3-Declared-Relationships
from_node.create_rel("FRIENDS", to_node)
我得到了一个未定义的方法create_rel
我究竟做错了什么?我正在尝试在另一个模型中创建一个 Q+A 系统。因此,问题和答案现在都被视为模型。
我正在undefined method
为 # 获取 create_rel'
事件.rb
has_many :out, :event_questions
event_question.rb
has_one :in, :events
has_many :out, :event_answers
def create_questions_of(from_node,to_node)
from_node.create_rel("questions_of", to_node)
end
event_answer.rb
has_one :in, :event_questions
event_questions_controller.rb
def new
#is this needed
end
def create
@event_question = EventQuestion.new(event_question_params)
if @event_question.save
@event = Event.find(params[:id])
@event_question.update(admin: current_user.facebook_id)
@event_question.create_questions_of(self,@event)
redirect_to @event
else
redirect_to @event
end
end
private
def event_question_params
params.require(:event_question).permit(:question)
end
我的新问题位于活动的索引页面中,因为我想在之后列出有关活动的所有问题。我什至不需要new
控制器中的方法,对吗?我也真的不知道如何获得我的问题表所在的事件。可以通过参数访问吗?
更新
你是说这个吗
def create_questions_of(to_node)
self.create_rel("questions_of", to_node)
end
和
@event_question.create_questions_of(@event)
所以我想我也需要改变我的路线并在里面嵌套问题来创建
events/123/questions/
然后我可以抓住events_id
并使用find
更新#2
events_controller.rb
def show
@event = Event.find(params[:id])
@event_question = EventQuestion.new
end
事件.rb
has_many :out, :event_questions, type: 'questions_of'
event_question.rb
has_one :in, :events, origin: :event_questions
事件/show.html.erb
<%= form_for [:event, @event_question] do |f| %>
#form stuff
<% end %>
event_questions_controller.rb
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
路线.rb
resources :events do
resources :event_questions, only: [:create, :destroy]
end