Ruby on rails Rails路径在更新时显示.id not/id

Ruby on rails Rails路径在更新时显示.id not/id,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,我有一个路由问题。当我在事件的编辑表单上单击submit时,我将被重新路由到一个带有.id而不是/id的页面,该页面显然不存在并产生错误。如有任何见解,将不胜感激 error: No route matches [PATCH] "/event.2" Rails.application.routes.draw do root 'welcome#welcome' get '/user/:id/' => 'users#main'

我有一个路由问题。当我在事件的编辑表单上单击submit时,我将被重新路由到一个带有.id而不是/id的页面,该页面显然不存在并产生错误。如有任何见解,将不胜感激

error: No route matches [PATCH] "/event.2"
    Rails.application.routes.draw do
     
     root 'welcome#welcome'
     get '/user/:id/' => 'users#main'
     get '/event' => 'events#index'
     get '/event/new/' => 'events#new'
     get '/event/:id/' => 'events#main'
     post 'event' => 'events#create'
     delete '/logout' => 'sessions#destroy'
     post '/submit' => 'welcome#submit'
    
    
     resources :events do
         member do
             get :coming, :going
             post :destroy, :update
        end
    end
     
     resources :users do
         member do
             get :following, :followers
         end
     end
     resources :friends,       only: [:create, :destroy]
     resources :comings,       only: [:create, :destroy]
     resources :relationships,  only: [:create, :destroy]
     
     get 'auth/:provider/callback', to: 'sessions#create'
     get 'logout', to: 'sessions#destroy'
    
        enter code here
    
    end

#events controller methods#
def edit
     @event = Event.find(params[:id])

end


    def update
     @event = Event.find(params[:id])
     respond_to do |format|
         if @event.update(event_params)
             format.html { redirect_to @event }
             else
             format.html { render :edit }
         end
     end
    end
    
#edit view#
<!DOCTYPE html>
<div class="edit-event">
  <div class="container">
    
    <h2>Tell us about your dog!</h2>
    <div class="edit-area">
        <%= form_for(@event) do |u| %>
        <div class="field">
            Event Name:
            <%= u.text_field :event_name %>
            Event Place:
            <%= u.text_field :place %>
            <%= u.submit "Submit"%>
        </div>
        <% end %>
    </div>
   
</div>

我认为在这种情况下,当您将
重定向到
时,它不知道要使用什么路由。我建议将
resources:events
更改为
resources:events,仅:[:编辑,:更新]
并删除为类似路由创建的手动路径。另一个选项是命名手动路由,并在重定向和链接中使用它。
get'event/:id',to'events#edit',as::edit_event

我做了上述更改,但不幸的是,我收到了相同的错误。知道为什么吗?我见过当你手动生成以斜杠开始并包含命名参数的路径时,它会将其更改为一个参数。而不是使用斜杠作为path@BNYCS92我更新了答案,请删除资源调用将生成的手动路径以获取帮助。出于某种奇怪的原因,我仍然收到同样的错误。我正在添加更新的路由文件。如果你知道它有什么问题,请告诉我。为什么你有这些额外的活动路线(在资源区之外)?您被重定向的路径是什么to@FrederickCheung我不知道你的意思。我更新了我的路线表,但收到了相同的错误。你建议做些什么修改?@BNYCS92故事的结果是什么?如果您可以发布您的解决方案(无论您现在记得什么),这将非常有帮助
Rails.application.routes.draw do
 
 root 'welcome#welcome'
 get '/user/:id/' => 'users#main'
 get '/event' => 'events#index'
 get '/event/new/' => 'events#new'
 get '/event/:id/' => 'events#main'
 post 'event' => 'events#create'
 delete '/logout' => 'sessions#destroy'
 post '/submit' => 'welcome#submit'


resources :events, only: [:edit, :update]
 
 resources :users do
     member do
         get :following, :followers
     end
 end
 resources :friends,       only: [:create, :destroy]
 resources :comings,       only: [:create, :destroy]
 resources :relationships,  only: [:create, :destroy]
 
 get 'auth/:provider/callback', to: 'sessions#create'
 get 'logout', to: 'sessions#destroy'