Rails - 如何阻止用户创建重复项?

时间:2016-02-23 02:52:42

标签: ruby-on-rails

每个用户可以有两个别名,但每个别名必须具有唯一的名称。例如:

用户1:鲍勃,罗恩

User2:Bob

如果User2要创建另一个别名,我该如何阻止它们命名Bob?

1 个答案:

答案 0 :(得分:1)

这很简单,你可以验证范围的唯一性,即:

class Alias < ActiveRecord::Base
  validates :alias_name, uniqueness: { scope: :user_id, case_sensitive: false }

  # existing code
end 

这可以防止创建(或更新)具有相同名称的别名,这些别名属于同一个用户。 case_sensitive属性使其更严格,即bob, Bob, bOb, boB, BOb, bOB, BOB被认为是相同的。

您可以在导轨中找到更多相关信息。 guide