Ruby on rails 嵌套浅层资源上的Rails路由方法

Ruby on rails 嵌套浅层资源上的Rails路由方法,ruby-on-rails,rails-routing,Ruby On Rails,Rails Routing,由于大量的投入,我已经清理了我的深路线,并将其替换为浅路线。我试图让一个自定义的方法工作,但缺少连接点的东西。My routes.rb有以下几行: resources :members, shallow: true do resources :events, shallow: true do get 'complete' => 'events#complete' resources :items end end 我的目标是能够对事件调用'events/:id/co

由于大量的投入,我已经清理了我的深路线,并将其替换为浅路线。我试图让一个自定义的方法工作,但缺少连接点的东西。My routes.rb有以下几行:

resources :members, shallow: true do
  resources :events, shallow: true do
    get 'complete' => 'events#complete'
    resources :items
  end
end
我的目标是能够对事件调用'events/:id/complete'来完成事件并对其进行后期处理。上述路线添加了以下路线:

event_event_complete GET    /events/:event_id/complete(.:format)     events#complete
       member_events GET    /members/:member_id/events(.:format)     events#index
                     POST   /members/:member_id/events(.:format)     events#create
    new_member_event GET    /members/:member_id/events/new(.:format) events#new
          edit_event GET    /events/:id/edit(.:format)               events#edit
               event GET    /events/:id(.:format)                    events#show
                     PATCH  /events/:id(.:format)                    events#update
                     PUT    /events/:id(.:format)                    events#update
                     DELETE /events/:id(.:format)                    events#destroy
当前控制器操作:

def complete
  @event = Event.find(params[:event_id])
end
我认为应该是:

def complete
  @event = Event.find(params[:id])
end
似乎我把它放错地方了,或者遗漏了一些东西,因为它以:event_id而不是:id的形式传递事件。一切都正常,但似乎这更混乱,所以我打赌我做错了一些愚蠢的事情

提前感谢您的帮助


标记

如下更新您的路线:

  resources :members, shallow: true do
    resources :events, shallow: true do
      member do
        get 'complete' => 'events#complete'
      end
      resources :items
    end
  end

这样,您将在
参数[:id]
中接收事件id,而不是
参数[:event\u id]
以完成
操作路线。

使用
@event=event.find(params[:id])


这和我的答案有什么不同?我不知道你也发布了同样的答案。你比我的帖子快了2分钟,真是妙不可言。再次感谢您的时间和帮助,非常感谢!!!!很高兴再次提供帮助:)
resources :members, shallow: true do
    resources :events, shallow: true do
      member do
        get 'complete' => 'events#complete'
      end
      resources :items
    end
  end