路由对我来说一直是最烦人的事情之一。Rake 路由会显示我可以使用的信息,但我无法按照我想要的方式操作这些信息。在我的程序中,我有一个用户模型,为此我使用了 devise。每个用户都可以创建员工,员工成为他们自己的用户(使用登录凭据等)。
我在使用员工“更新”方法时遇到问题。用户更新方法工作正常。当我运行 rake 路线时,我得到以下几行
PUT /users(.:format) devise/registrations#update
PUT /employees/:id(.:format) employees#update
当我尝试更新我的员工时,我收到了错误
No route matches [PUT] "/employees"
那是我希望能够 PUT 的路线,但看起来 rails 宁愿给我 /employees/:id 工作。
我的路线文件包括
devise_for :users
resources :users, :only => [:index, :show, :new, :edit, :create, :update, :destroy]
resources :employees, :only => [:index, :show, :new, :edit, :create, :update, :destroy]
任何帮助都会很棒,有关操纵我的路线的任何其他信息都会很棒。谢谢!
编辑
这是我的更新员工控制器方法
def update
@employee = current_company.users.find(params[:id])
if @employee.update_attributes(params[:employee])
redirect_to :action => 'show', :id => @employee.id
flash[:notice] = "Employee information updated"
else
render :action => 'edit'
flash[:notice] = "No edits were made"
end
end