2012-07-02 26 views
1

我有一個名爲Account的對象,並且有一個與每個帳戶關聯的廣告系列來源。目前,如果帳戶更新且沒有廣告系列來源,則必須更新廣告系列來源(可能的值位於選擇列表中)。在Rails中,如何在創建模型時只使用validates_inclusion_of,而不是每次更新時都使用validates_inclusion_of?

我知道validates_presence_of有一個:on選項,它允許你指定:create,:update或save,但是validates_inclusion_of沒有這個選項,不幸的是。我怎樣才能解決這個問題?謝謝。

這裏是我的代碼:

class Account < ActiveRecord::Base 
    validates_inclusion_of :campaign_source, :in => CampaignSource.list, :message => "^Please let us know how you heard about us" 
+0

你試過了':on'選項? – Stefan

+0

API說'validates_inclusion_of'確實有這個選項。你爲什麼認爲它不可用? http://api.rubyonrails.org/classes/ActiveModel/Validations/HelperMethods.html#method-i-validates_inclusion_of – jdoe

+0

我的結論是,因爲我們實際上還沒有在Rails 3上。我們仍然在2,並且看起來該版本的validates_inclustion_of沒有:on選項。 –

回答

4

嘗試

validates :campaign_source, :inclusion => { :in => CampaignSource.list }, 
          :message => "^Please let us know how you heard about us", 
          :on => :create 
+0

是的,現在我看到了我的問題:我正在使用Rails 2.3.8。在這個版本中。 validates_inclusion_of沒有:on選項。看起來我必須等到我們升級到Rails 3.謝謝大家。 –

相關問題