1
안녕 얘들 아 나는 Mongoid에 관계가있어이 관계에 current_user를 추가하여 거래를 생성하는 사용자를 얻을 수 없습니다. 3 모델과의 관계.current_user를 추가하십시오 Mongoid 관계를 찾으십시오
나는
user.rb 관계 (고안 모델)
# Relationships
has_many :houses, dependent: :destroy
has_many :deals, dependent: :destroy
key :title
house.rb을 세 가지 모델의 user.rb, house.rb을 가지고 deal.rb
# Relationships
belongs_to :user
embeds_many :deals
deal.rb
내 생성 방법에 내 houses_controller.rb에서 내 routes.rbresources :houses do
resources :deals
end
에서
# Relationships
embedded_in :house, :inverse_of => :deals
belongs_to :user
나는이 쪽의 각 집을 CURRENT_USER를 얻을 : 내 deals_controller에서
def create
#@house = House.new(params[:house])
@house = current_user.houses.new(params[:house])
respond_to do |format|
if @house.save
format.html { redirect_to @house, notice: 'House was successfully created.' }
format.json { render json: @house, status: :created, location: @house }
else
format.html { render action: "new" }
format.json { render json: @house.errors, status: :unprocessable_entity }
end
end
end
.rb 작성한 메소드는 다음과 같습니다.
def create
@house = House.find_by_slug(params[:house_id])
@user = User.find(:user_id)
@deal = @house.deals.create!(params[:deal])
redirect_to @house, :notice => "Comment created!"
end
거래를 생성 한 current_user를이 마지막 메소드 create에 어떻게 추가 할 수 있습니까?
@deal.user=current_user
@deal.save
을 그리고 또한 사용자가 만든 사용하지 않는 제안 :
고마워요! 나는 새것을 위해 창조하고 변화를 저장한다 : D. 그러나 deal.rb에서 house.rb 및 "embedded_in : house : inverse_of => :"의 "embeds_many : deals"에 대해서는 "관계형을 통해 사용자 문서에서 거래 문서를 참조하는 것이 아닙니다. 딜이 내장 된 이후 허용되었습니다. " 하지만 has_many와 belongs_to가 잘 작동합니다. embeds_many 또는 has_many 및 references를 사용하는 것이 가장 좋습니다. 고맙습니다. – hyperrjas
누군가가이 문서를 읽는다면 @hyperrjas가 보는 오류를 피할 수 있습니다. 예를 들어 "거래가 포함되어 있으므로 관계 문서를 통해 사용자 문서에서 (n) 거래 문서를 참조 할 수 없습니다." 그의 첫 번째 질문에서 정의한 user.rb에서이 줄을 지우십시오. #has_many : depends, depends : : destroy – brg