2012-10-03 58 views
0

我正在使用設計。它給目前的用戶ID爲使用mongodb作爲數據庫的rails中的關聯

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 

該控制器的模型是

class Empsal 
    include Mongoid::Document 
    belongs_to :paygrade 
    field :salary_component, type: String 
    field :pay_frequency, type: String 
    field :currency, type: String 
    field :amount, type: String 
    field :comments, type: String 
validates_presence_of :pay_frequency 

end 

我想和具有模型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 

回答

1

你有你需要的,除了在用戶模式設置負相關的一切:

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 

參見文檔在http://mongoid.org/en/mongoid/docs/relations.html#has_many

有了這個,你可以做這樣的事情

@user.empsals # it will be a list of Empsal instances 
+0

我必須在Emspsal模型中做什麼?由於可能有許多與一個用戶有關的數據,我如何從控制器獲取數據並將其傳遞給視圖? – regmiprem

+0

你想對用戶做什麼?你不是很清楚。 – rewritten

+0

用戶提交的數據應該與模型用戶鏈接,以便用戶只能查看他的數據?因爲用戶的id來自current_user.id。 – regmiprem

相關問題