11
我有一個用戶註冊表單,它具有通常的字段(名稱,電子郵件,密碼等),還有一個「team_invite_code」字段和一個「角色」彈出式菜單。Rails自定義驗證
創建用戶之前 - 只有在情況下,用戶的角色是「孩子」 - 我需要:
- 檢查,如果team_invite_code存在
- 檢查,如果有一隊隊中的表已經平等邀請碼
- 準用戶在合適的團隊
我怎麼能寫在的Rails 2.3.6一個適當的驗證?
我嘗試以下,但它給我的錯誤:
validate :child_and_team_code_exists
def child_and_team_code_exists
errors.add(:team_code, t("user_form.team_code_not_present")) unless
self.is_child? && Team.scoped_by_code("params[:team_code]").exists?
end
>> NameError: undefined local variable or method `child_and_team_code_exists' for #<Class:0x102ca7fa8>
UPDATE: 此驗證代碼的工作:
def validate
errors.add_to_base(t("user_form.team_code_not_present")) if (self.is_child? && !Team.scoped_by_code("params[:team_code]").exists?)
end
非常感謝Felix,我在方法定義之前添加了「private」,但仍然出現同樣的錯誤:( – Augusto
噢...您能否在您的模型中發佈更多代碼?是的,就像你在問題中提到的那樣,你也不應該使用params,它應該對你有用,如果它是自我的一個屬性的話。 – felix
嗨菲利克斯我更新了這個問題,現在驗證代碼的作品。我仍然不確定如何處理參數,因爲team_code不是(也不應該是)用戶屬性(在第一個之後可以有很多團隊)。 – Augusto