验证多态关联的唯一性

时间:2015-10-01 19:08:51

标签: ruby-on-rails

我试图为多态关联实现验证,我只希望它在某种类型上触发。哪个是用户。

我想要这样的事情:

 <asp:GridView ID="gvItems" runat="server" AllowSorting="True" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1">

我该如何做到这一点。另一种是客户。我希望有机会成为几个人。

1 个答案:

答案 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