2011-10-13 37 views
0

1) 我在我的人力資源管理應用程序中有請假表格,我希望當用戶輸入「from_date」時,「to_date」應該大於「from_that」?是他們在ruby中的任何日期過濾器嗎?

2) 在我的應用我有哪個用戶可以定義的休假類型和一天的allowed.In我的第二個模型leave_request用戶可以要求根據離開type.Everything休假工作well.Now我想請假模型根據允許的日期在leave_request表單中顯示給用戶可用的假期餘額?

遷移leave.rb:

class CreateLeaves < ActiveRecord::Migration 
     def self.up 
     create_table :leaves do |t| 
      t.integer :user_id 
      t.integer :company_id 
      t.string :leave_type 
      t.integer :allowed_leaves 
      t.text :description, :limit => 500 

      t.timestamps 
     end 
     end 

     def self.down 
     drop_table :leaves 
     end 
    end 

而且leave_request.rb:

class CreateLeaveRequests < ActiveRecord::Migration 
     def self.up 
     create_table :leave_requests do |t| 
      t.integer :employee_id 
      t.integer :leave_type 
      t.date :from_date 
      t.date :to_date 
      t.text :reason_for_leave 
      t.string :contact_during_leave, :limit => 10 

      t.integer :user_id 
      t.integer :company_id 

      t.timestamps 
     end 
     end 

     def self.down 
     drop_table :leave_requests 
     end 
    end 

,我可以確認葉片數可一樣,如果用戶沒有足夠的休假餘額比他們應該是一個消息如「你沒有足夠的請求請求」等。

+0

如果您一次發佈一個問題,您會得到更好的結果。 –

+0

好的喬丹我會照顧它,謝謝你的指導 – Ravindra

回答

0

喜的朋友在這裏,我帶着我的第二個問題的一個新的答案

我使用的代碼以下行來解決我的問題:

<label><a href="/leave_types">Leave Type</a></label> 
    <label>Balance</label> 

<% for leave in @leave_types %> 
    <%= leave.leave_type %> 
    <%= leave.allowed_leaves%> 
<% end %> 

這顯示我的所有leave_types在我的新leave_request形式。

+0

現在即時通過j查詢leave_request表格計算假期餘額,請有些朋友幫我 – Ravindra

1

你的第一個問題不是很理解。什麼是「from_that」?如果你問如何檢查一個日期之前或之後另一個,很容易:DateDateTime包括Comparable這樣你可以比較任意兩個就像你兩個數字,如:

>> DateTime.now > 1.day.ago 
# => true 

>> DateTime.now > Date.tomorrow 
# => false 
+0

哎呀..請更清楚,我應該在哪裏實現它,在我的模型或視圖直接,因爲我用jquery日期選擇器而不是「date_select」 – Ravindra

+0

嗨,我創建了「from_date」和「to_date」的驗證,它的工作原理 – Ravindra

1

You can write your own validator, something like this (untested code):

class LeaveRequest < ActiveRecord::Base 
    validate :has_enough_leave 

    def has_enough_leave 
     if(to_date - from_date > employee.allowed_leave.days) 
      errors.add(:to_date, "You do not have enough leave to requestt") 
     end 
    end 

    ... 
+0

您好馬修,這是一個類型錯誤:預期的數字或日期 – Ravindra

0

我已經做了我的第一個問題,在下列方式:

class LeaveRequest < ActiveRecord::Base 
     belongs_to :user 
     belongs_to :leave 

    validate :from_date_and_to_date 

     def from_date_and_to_date 
      if(to_date != from_date) 
      errors.add(:to_date, " should be greater than from date") 
      end 
     end 
+0

但這只是今天的工作日期,是他們的任何方式能夠在未來的日期工作 – Ravindra