fad*_*ack 6 ruby-on-rails devise
假设我想创建一个没有自行注册的模型用户.我创建了User模型并添加了以下行
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
Run Code Online (Sandbox Code Playgroud)
在我的routes.db文件中,我跳过注册
devise_for :users, skip: :registrations
Run Code Online (Sandbox Code Playgroud)
当我运行rake routes注册路径消失.
但是,我可以:registerable从User模型中删除相同的配置,而不是添加`skip :: registrations.
所以问题是:两种消除自我注册的方式之间的主要区别是什么?哪个更优选?
bac*_*rhh 11
如果您对用户注册不感兴趣,两个选项都会给您相同的结果,但我更喜欢registerable从用户模型中删除该模块以避免加载它而根本不使用它.
您可以devise在下一个链接中看到该方法,这样您就可以通过不加载模块来了解您正在避免的内容:https:
//github.com/plataformatec/devise/blob/master/lib/devise/models.rb#L77
另一方面,如果您对通过任何子类(比如买方或卖方,使用STI)而不是类本身(用户)的用户注册感兴趣,则需要registerable用户模型上的模块以及类似路径上的模块:
devise_for :users, skip: :registrations
devise_for :buyers, only: :registrations
devise_for :sellers, only: :registrations
Run Code Online (Sandbox Code Playgroud)
我希望它有所帮助.
| 归档时间: |
|
| 查看次数: |
3797 次 |
| 最近记录: |