Добавить current_user Devise к Mongoid отношениям - PullRequest
1 голос
/ 18 октября 2011

Привет, ребята. У меня есть отношения в 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

В моих rout.rb

 resources :houses do
  resources :deals
 end

В моем homes_controller.rb в моем методе создания я получаю 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

Как я могу добавить к этому последнему методу create, current_user, который создал сделку?

1 Ответ

0 голосов
/ 18 октября 2011

Вы можете просто добавить эти две строки к действию создания:

@deal.user=current_user
@deal.save

И я бы также предложил вам не использовать создание!вместо этого вы должны использовать .new и .save, как в действиях по созданию леса!;)

...