ruby-on-rails-3 - 没有路由匹配 { :action= >"destroy", :controller= >"users"}

标签 ruby-on-rails-3 routes

当我尝试通过命名路由 (http://localhost:3000/profile/) 访问 users#show 页面时出现错误......否则当我尝试使用标准 url 访问它时我没有错误( http://localhost:3000/users/current)。如果我 rake 路由,我的路由看起来是正确的,并且因为它适用于标准 url,我真的不知道为什么我会收到 No route matchs 错误。当我什至没有尝试访问它时,为什么要尝试为操作“销毁”找到路由匹配?

Starcast::Application.routes.draw do

  match "login" => 'user_sessions#new', :as => :login
  match "logout" => 'user_sessions#destroy', :as => :logout
  resources :user_sessions 

  match "profile" => 'users#show'
  resources :users

  resources :casters
  resources :casts
  resources :orders

  root :to => "home#index"

end

我得到的错误:
ActionView::Template::Error (No route matches {:action=>"edit", :controller=>"users"}):
    1: <% title "Welcome #{@user.username}" %>
    2: 
    3: <%= link_to "Edit your profil", edit_user_path %> 
    4: 
    5: <% has_role? :caster do %>
    6: <% if @user.caster %>
  app/views/users/show.html.erb:3:in `_app_views_users_show_html_erb___2116234531537545622_2170017780__3613739707062673465'

最佳答案

编辑/显示/销毁/更新路径需要一个 id 参数......即 edit_user_path(current_user.id) ...如果你不想这样做,你需要让你的路线使用资源 :user (而不是资源:用户),如果你做得不对,这将在以后的道路上引起很多头痛。

关于ruby-on-rails-3 - 没有路由匹配 { :action= >"destroy", :controller= >"users"},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4125156/

相关文章:

ruby-on-rails-3 - Rails 3 - rspec 冲突

php - Laravel 在 View 中列出路由

ruby-on-rails - 这样容易出现SQL注入(inject)吗?

ruby-on-rails - 每天向帐户用户发送包含站点更新的电子邮件 Ruby on Rails

ruby-on-rails - 创建到外部 URL 的 Rails 路由

reactjs - 当 session (存储的cookie)不可访问时如何保护 react 路由?

node.js - Express req.locals 与 res.locals 的概念性最佳实践是什么?

ruby-on-rails - 设计 Ruby On Rails 4 路线

ruby-on-rails - 用于 Rails 4 的 mobile_fu

ruby-on-rails - 空 Rails 应用程序中的内存无限增长