我上面描述的关系是蓝色的,然而,它会提示很多错误,例如没有方法错误。
A和C之间的EMBEDDED关系(红色)是否可以?鉴于另外两种关系。
此外,在路径文件中,我应该将B嵌套在A?
中请告知并谢谢。
class Trip
include Mongoid::Document
include Mongoid::Timestamps
field :name
key :name
belongs_to :user
has_many :logs
end
class Log
include Mongoid::Document
field :content
validates_presence_of :content
belongs_to :trip
belongs_to :user
end
class User
include Mongoid::Document
has_many :trips
has_many :logs
end
错误:
NoMethodError in Trips#show
Showing /home/jason/apps/app/views/trips/show.html.haml where line #17 raised:
undefined method `logs_path' for #<#<Class:0x9b8a14c>:0x9d3251c>
控制器:
class TripsController < ApplicationController
def show
@trip = Trip.find(params[:id])
@log = Log.new
@logmsg = @trip.logs
end
end
class LogsController < ApplicationController
def create
@log = @trip.logs.build(params[:log])
current_user.logs.build(params[:log])
respond_to do |format|
if @log.save
format.html { redirect_to @log, notice: 'successfully created.' }
else
format.html { redirect_to trip_path(@trip) }
end
end
end
def destroy
I want an ajax destroy here, as the logs will only be shown in the Trips show page.
end
end
show - trips / show.html.haml:
= form_for @log do |f|
.field
= f.label :content
= f.text_field :content
.actions
= f.submit 'Save'
以下是路线文件摘录:
App::Application.routes.draw do
resources :trips do
resources :logs
end
end
答案 0 :(得分:2)
不,您无法在ModalA
中嵌入ModalC
,因为ModelB
将无法引用嵌入的对象。
嵌入式模型实际上是里面的父文档,而不是单独的集合。