我在編寫Redmine插件時遇到了驗證問題。Redmine鉤子的驗證問題
我寫的問題模型掛鉤,並作爲掛鉤方法的一部分,我想失效問題的創作,加入了自定義錯誤:
def controller_issues_new_before_save(context = { })
context[:issue].errors.add(:due_date, "A custom error")
end
對於測試目的,我寫了一個覆蓋Issue.validate_on_create的補丁,但似乎每次輸入validate_on_create時error.count被設置爲零。
我需要停止創建問題對象,但僅當某個屬性設置爲另一個模型對象時。
我想過在validate_on_create方法中寫這個,但是我需要將它傳遞給另一個對象。
我想到的第一個解決方案是在問題模型中插入一個額外的字段,並在鉤子內修改它。
喜歡的東西:
def controller_issues_new_before_save(context = { })
context[:issue].can_validate = false
end
def validate_on_create
unless can_validate
errors.add("error", "A custom error")
end
end
其中Issue.can_validate是除了發行模型
然而,這似乎並沒有最好的方法在這裏。有更容易的方法嗎?