Ruby on Rails:路由未正确更新

Ruby on Rails: Route not updating correctly

我已经定义了以下路线:

get 'invites/search', to: 'invites#edit', controller: :invites

我更改自:

get 'invites/search', to: 'invites#show', controller: :invites

控制器如下:

def show
  @invite = Invite.find(params[:id])
end

...

def edit
  # If the request is a search containing an 'invite_code'
  if params.has_key?(:invite_code)
    @invite = Invite.where(invite_code: params[:invite_code]).first
  else
    @invite = Invite.find(params[:id])
  end
end

我收到以下错误:

ActiveRecord::RecordNotFound in InvitesController#show

Couldn't find Invite with 'id'=search

Extracted source (around line #7):         

6  def show
7    @invite = Invite.find(params[:id])
8  end

def new

这表明路线没有更新?

这是佣金路线:

invites_search GET    /invites/search(.:format)                     invites#edit

我试过重新启动服务器,但我不确定现在该做什么?我怎样才能得到去 'edit' 而不是 'show' 的路线?

谢谢,

LM.

编辑:

这是来自索引页的表格:

<%= form_tag invites_search_path, method: :get do %>
  <%= label_tag :invite_code, "#" %>
  <%= text_field_tag :invite_code, nil %>
  <%= submit_tag "Search", name: nil %>
<% end %>

编辑 2:

请参阅此处,了解我试图使用此代码实现的目标:

您为什么不尝试为该方法创建另一个名称,因为 resources :invites 总是生成完整的 CRUD,所以这可能是一个冲突

在 routes.rb

中尝试类似的操作
resources :invites do
  resources :guests
  collection do
    get 'search'
  end
end

然后你就这样调用它

<%= form_tag search_invites_path, method: :get do %>