我正在尝试确保用户名在注册时是唯一的,但我不确定如何执行此操作
我试过了:
validates_uniqueness_of :username
但它不起作用
它给了我这个错误:
#<UsersController:0x6c4fd2>
请帮忙吗?
答案 0 :(得分:6)
您尚未指定声明validates_uniqueness_of
的位置。这是一个混合到ActiveRecord::Base
中的类方法,因此请确保在模型中声明它,而不是在控制器或其他地方声明。
答案 1 :(得分:1)
validates_uniqueness_of
应该可以工作,但是您必须向数据库列添加唯一索引以避免竞争条件。这可以通过迁移完成:
add_index :table_name, :column_name , :unique=> true
同时查看validates_uniqueness_of
的case_sensitive
选项。
答案 2 :(得分:1)
这需要放入用户模型而不是控制器。