我试图为多态关联实现验证,我只希望它在某种类型上触发。哪个是用户。
我想要这样的事情:
<asp:GridView ID="gvItems" runat="server" AllowSorting="True" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1">
我该如何做到这一点。另一种是客户。我希望有机会成为几个人。
答案 0 :(得分:0)
我认为您可以使用Conditional Validation
有时仅在给定时验证对象才有意义 谓词很满意。您可以使用:if和:except来实现 选项,可以采用符号,字符串,Proc或数组。您 如果要在验证时指定,可以使用:if选项 应该发生。如果要指定何时不进行验证 发生,那么你可以使用:除非选项。
5.1使用符号:if和:除非
您可以将:if和:unless选项与符号相关联 对应于将被调用的方法的名称 在验证发生之前。这是最常用的选项。
class Order < ActiveRecord::Base
validates :room_id, uniqueness: { scope: :tokenable_id }, if: :is_right_type?
# or maybe this will work
validates :room_id, uniqueness: { scope: :tokenable_id }, if: :user?
def is_right_type?
type == "user"
end
end