我正在try 从Desive中删除/禁用user/sign_up路径.我这样做是因为我不希望随机的人访问应用程序.我在routes中添加了以下内容,这在一定程度上起到了作用.rb

Rails.application.routes.draw do
  devise_scope :user do
    get "/sign_in" => "devise/sessions#new" # custom path to login/sign_in
    get "/sign_up" => "devise/registrations#new", as: "new_user_registration" # custom path to sign_up/registration
  end

...

devise_for :users, :skip => :registration

end

然而,这个数字突破了<%= link_to "Profile", edit_user_registration_path, class: "btn btn-info btn-flat" %>

我想保留它,以便用户可以更新他们的个人资料.

这个问题有解决办法吗?

run

设计(4.2.0、4.1.1、4.1.0)

轨道4.2.5

ruby 2.3.0p0(2015-12-25修订版53290)[x86_64-linux]

推荐答案

Solution to removing sign_up path from Devise

routes.rb开头输入以下内容

Rails.application.routes.draw do
  devise_scope :user do
    get "/sign_in" => "devise/sessions#new" # custom path to login/sign_in
    get "/sign_up" => "devise/registrations#new", as: "new_user_registration" # custom path to sign_up/registration
  end

...在上面的陈述之后,在routes.rb中添加以下内容

devise_for :users, :skip => [:registrations] 
  as :user do
  get 'users/edit' => 'devise/registrations#edit', :as => 'edit_user_registration'
  put 'users' => 'devise/registrations#update', :as => 'user_registration'
  end

这将在不中断edit_user_registration_path的情况下删除/禁用Desive的user/sign_up路径

重新启动rails服务器,它应该可以工作.

Ruby-on-rails相关问答推荐

将两个日期之间的差值转换为Ruby中的iso8601持续时间(如果需要,还可以使用Rails)

在Rails中,如何将帮助器方法添加到属性/列?

合成轨道布局

只允许用户在 Rails 中输入字母和数字

BigDecimals 的总和最终成为整数 [Ruby on Rails]

在 Rails 3 中,如何在路由中使用锚点作为 ID?

ArgumentError:您需要使用 :if 提供至少一个验证

Ruby 地理定位Ruby /插件

rake assets:precompile try 连接到数据库

具有条件的列的计数器缓存?

控制器规格与请求规格?

Rails 4 迁移:如何重新排序列

是否有不涉及删除 Gemfile.lock 的在任何源中找不到 *gem*错误的修复?

Redis 引发需要 NOAUTH 身份验证错误,但没有设置密码

Ruby on Rails 中的MySQL 服务器已经消失

Ruby 和 Ruby on Rails 离线 API 文档

在 Rails 生产中禁用assets资源 缩小

设计:在注册期间禁用密码确认

Rspec:如何在控制器规范中分配实例变量

简单的 rails rake 任务拒绝运行并出现错误不知道如何构建任务,为什么?