【问题标题】:Why doesn't my delete link work in Google Chrome?为什么我的删除链接在 Google Chrome 中不起作用?
【发布时间】:2012-08-25 20:09:41
【问题描述】:

我刚刚升级到 rails 3.2.8 并设计了 2.1.2,完全擦除了我的用户模型以使用新的迁移和设置。不过,我保留了我的旧观点,并开始测试我的用户链接以销毁/删除他们自己的帐户。现在我在 Firefox 中对此进行了测试,它可以正常工作,如果确认,则会弹出确认框并删除帐户。在谷歌浏览器中,虽然我没有得到确认框,但它直接进入:

Routing Error
No route matches [GET] "/users"

这是我的链接:

  Unhappy? <%= link_to "Delete my account", registration_path(resource_name), :data => { :confirm => "Are you sure?" }, :method => :delete %>.

还有人有这种疯狂吗?为什么它不适用于此浏览器?

【问题讨论】:

  • 出于好奇,如果您在 Chrome 中删除与您的项目相关的所有 cookie 并重新开始注册会怎样?
  • @Abram 那也没用。也许这是一个发展的事情。我很快就会在生产中试用它。
  • 你有这个的公共github吗..请给我链接,我会帮你解决问题

标签: ruby-on-rails ruby-on-rails-3 devise


【解决方案1】:

你应该看到:

edit_user_registration   GET    /users/edit(.:format)            devise/registrations#edit
                         PUT    /users(.:format)                 devise/registrations#update
                         DELETE /users(.:format)                 devise/registrations#destroy

当您在项目目录中运行“rake routes”时。

尝试将"user_registration_path" 更改为"edit_user_registration_path"

【讨论】:

  • 您是否输入了: { :confirm => "您确定吗?" }, :method => :delete %>
  • 是的,它就是这么做的。仍然需要看看生产中会发生什么。
  • 所以我在生产中使用它,它说地址错误或在其他地方它不起作用。
【解决方案2】:

必须改变我的路线才能正确。

devise_for :users, :controllers => { :registrations => 'registrations' }
  devise_scope :user do
    get 'join' => 'devise/registrations#new', :as => :new_user_registration
    put 'join' => 'devise/registrations#create', :as => :user_registration
    get 'login' => 'devise/sessions#new', :as => :new_user_session
    post 'login' => 'devise/sessions#create', :as => :user_session
    delete 'logout' => 'devise/sessions#destroy', :as => :destroy_user_session
    get 'account_settings' => 'devise/registrations#edit', :as => :edit_user_registration
    put 'account_settings' => 'devise/registrations#update', :as => :update_user_registration
    get 'forgot_password' => 'devise/passwords#new', :as => :new_user_password
    get 'user', :to => 'user_pages#home', :as => :user_root
  end

  match '/user' => 'user_pages#home', :as => :user_root

并添加到列表中:

delete 'join' => 'devise/registrations#destroy', :as => :user_registration

也可能是我从头开始重新编写了整个应用程序。

【讨论】:

    猜你喜欢
    • 2015-10-16
    • 2013-08-02
    • 1970-01-01
    • 2011-03-15
    • 2013-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-24
    相关资源
    最近更新 更多