0

可能重复:
最近的项目 - 路由错误

我在我的 rails 应用程序中遇到了一个非常奇怪的行为。基本上,用户可以上传照片(使用carrierwave,基本的脚手架生成的表格)。这些照片的模型称为user_photo。这是我的路由文件:

路由.rb

Myapp::Application.routes.draw do
  #...

  match 'profiles/:profile_id/photos' => 'user_photos#index_profile', :as => :profile_user_photos
  match 'user_photos/vote/:id'   => 'user_photos#vote',       :as => :user_photo_vote
  resources :user_photos do
    resources :comments
  end

  #...
end

现在,当我尝试使用以下 URL 模式访问用户上传的一些照片时:

http://localhost:3000/user_photos/31 (this is just an example)

我收到此错误:

没有路线匹配 {:action=>"show", :controller=>"user_photos", :id=>nil}

奇怪的是,一些 user_photos 工作,这是完全不可预测的!我不确定是什么可能导致了这个错误,所以我只发布了我的路由文件(因为这是我想到的第一件事)。如果您有任何想法或需要更多信息来了解正在发生的事情,请告诉我。提前致谢。


编辑:

好吧,其实是可以预见的。只有最后上传的 user_photo 不起作用,当我将上传下一张时,上一张不起作用的开始起作用。有任何想法吗?

此线程在此处继续:最近的项目 - 路由错误

4

1 回答 1

2

试用:

Myapp::Application.routes.draw do
  #...

  match 'profiles/:profile_id/photos' => 'user_photos#index_profile', :as => :profile_user_photos
  resources :user_photos do
    get :vote, :on => :member
    resources :comments
  end

  #...
end

该线路get :vote, :on => :member将生成/user_photos/:id/vote您可以调用的路线like_user_photo_path(any_user_photo)

于 2012-10-19T19:53:52.817 回答