嗨大家我在Mongoid中有一个关系,我无法将current_user添加到此关系中以获取创建交易的用户。与3模型的关系。
我有三个模型user.rb,house.rb和deal.rb
user.rb 关系(设计模型)
# Relationships
has_many :houses, dependent: :destroy
has_many :deals, dependent: :destroy
key :title
house.rb
# Relationships
belongs_to :user
embeds_many :deals
deal.rb
# Relationships
embedded_in :house, :inverse_of => :deals
belongs_to :user
在我的 routes.rb
中 resources :houses do
resources :deals
end
在我的我的houses_controller.rb中,在我的create方法中,我得到了这方面每个房子的current_user:
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
在我的 deals_controller.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?
答案 0 :(得分:0)
您只需将这两行添加到创建操作:
@deal.user=current_user
@deal.save
我还建议你不要使用create!相反,你应该在脚手架创建动作中使用.new和.save! ;)