Ruby on rails 使用mongodb作为数据库的rails中的关联

Ruby on rails 使用mongodb作为数据库的rails中的关联,ruby-on-rails,mongodb,associations,mongoid,Ruby On Rails,Mongodb,Associations,Mongoid,我正在使用这个装置。它将当前用户标识作为 current_user.id 有很多用户。有一个控制器名为empsals_controller.rb class EmpsalsController < ApplicationController def index @empsals = Empsal.all end def show @empsal = Empsal.find(params[:id]) end def new @emps

我正在使用这个装置。它将当前用户标识作为

current_user.id
有很多用户。有一个控制器名为empsals_controller.rb

class EmpsalsController < ApplicationController

  def index
    @empsals = Empsal.all


  end

  def show
    @empsal = Empsal.find(params[:id])

  end

  def new
    @empsal = Empsal.new


  end


  def edit
    @empsal = Empsal.find(params[:id])
  end

  def create
    @empsal = Empsal.new(params[:empsal])

    respond_to do |format|
      if @empsal.save
        format.html { redirect_to @empsal, notice: 'Empsal was successfully created.' }
        format.json { render json: @empsal, status: :created, location: @empsal }
      else
        format.html { render action: "new" }
        format.json { render json: @empsal.errors, status: :unprocessable_entity }
      end
    end
  end

  def update
    @empsal = Empsal.find(params[:id])

    respond_to do |format|
      if @empsal.update_attributes(params[:empsal])
        format.html { redirect_to @empsal, notice: 'Empsal was successfully updated.' }
        format.json { head :no_content }
      else
        format.html { render action: "edit" }
        format.json { render json: @empsal.errors, status: :unprocessable_entity }
      end
    end
  end

  def destroy
    @empsal = Empsal.find(params[:id])
    @empsal.destroy

    respond_to do |format|
      format.html { redirect_to empsals_url }
      format.json { head :no_content }
    end
  end
我想与具有model user.rb的设备建立关联,以便相关用户可以查看其相关数据

class User
  include Mongoid::Document
  include Mongoid::Timestamps
devise :database_authenticatable, :registerable, #:confirmable,
         :recoverable, :rememberable, :trackable, :validatable, :timeoutable, :timeout_in => 2.minutes
   field :role
end

除了在用户模型中设置反向关联外,您拥有所需的一切:

class User
  include Mongoid::Document
  include Mongoid::Timestamps

  has_many :empsals # <<<<<<< added line

  devise :database_authenticatable, :registerable, #:confirmable,
         :recoverable, :rememberable, :trackable, :validatable, :timeoutable, :timeout_in => 2.minutes
   field :role
end

在Emspsal模型中我必须做什么?由于可能有许多数据与一个用户相关,如何从控制器获取数据并将其传递给视图?您想对该用户做什么?您不是很清楚。用户提交的数据应该与模型用户链接,以便用户只能查看其数据?因为用户的id在当前_user.id中。当我们在控制器的索引部分@empsals=Empsal.all中编码时,如何将数据从控制器传递到视图。作为Empsal.all在数据库中存储与Empsal集合相关的所有数据。管理员也可以查看所有数据。在这里,我将用户id发送为:empsals,:action=>:index,:id=>user.id%>。。所以我应该这样设计,如果用户是登录的,那么他只能看到他的数据,作为管理员登录,点击链接用户详细信息,他可以查看与该员工相关的数据,因为该员工的id被传递
class User
  include Mongoid::Document
  include Mongoid::Timestamps

  has_many :empsals # <<<<<<< added line

  devise :database_authenticatable, :registerable, #:confirmable,
         :recoverable, :rememberable, :trackable, :validatable, :timeoutable, :timeout_in => 2.minutes
   field :role
end
@user.empsals # it will be a list of Empsal instances