私はプロジェクトに取り組んでおり、ショー ビューの 1 つで public ディレクトリの下にあるいくつかの画像をレンダリングしようとしています。インデックス ビューではこれらの画像に問題なくアクセスできますが、ショー ビューではそれほど簡単ではないように見えます。
したがって、私の見解では、次のようなものがあるとしましょう。
<%= "<img src=\"images/16x16/actions/filesave.png\" class=\"icon" title=\"save\">"%>
これはインデックス ビューではまったく問題なく動作しますが、何らかの奇妙な理由で、ショー ビューで次のルーティング エラーが発生します。
ActionController::RoutingError (一致するルートはありません [GET] "/uploads/images/16x16/actions/filesave.png"):
何らかの奇妙な理由で、「/images...」の直前に「/uploads/」ルートを挿入していることに気付きました。これが問題の原因であり、その理由や停止方法がわかりません。これは私のショー ビューでのみ発生します。
現在、routes.rb ファイルで多くのことが行われています。見苦しいことはわかっていますが、機会があればそこに行ってクリーンアップする予定です。
resources :upload_images
get "upload_image/new"
get "upload_image/index"
get "upload_image/show"
get "upload_image/delete"
resources :help_categories
resources :global_configs
resources :competitions
match '/teams/register', :controller => 'teams', :action => 'register'
match '/teams/invite_users', :controller => 'teams', :action => 'invite_users'
match '/teams/view_invitations', :controller => 'teams', :action => 'view_invitations'
match '/teams/ignore', :controller => 'teams', :action => 'ignore'
match '/teams/leave_team', :controller => 'teams', :action => 'leave_team'
resources :teams
resources :competitions do
resources :matches
end
resources :registers
resources :players do
collection do
post :edit_individual
put :update_individual
get :results
end
end
resources :tournaments
resources :matches
resources :upload_categories
resources :uploads, :except => [:new]
match '/download/:id' => 'uploads#download'
devise_for :users do
match 'logout' => 'devise/sessions#destroy'
end
resources :users, :except => [:new] do
member do
get 'upload_files'
get 'delete_files'
end
end
resources :games
devise_for :videolinks
resources :topics do
collection do
get "mark_all_viewed"
end
member do
get 'show_new'
end
end
resources :posts do
member do
get 'quote'
get 'topic'
end
end
resources :forums do
member do
get 'confirm_delete'
end
end
resources :blog_entries, :except => [:index]
resources :categories
resources :videolinks
resources :competition_games
resources :competitions
resources :news
resources :events
match 'uploads/find_uploads' => 'uploads#find_uploads'
match 'uploads/add_upload_image' => 'uploads#add_upload_image'
match 'forum_root' => 'forums#index'
match 'upload_root' => 'uploads#index'
match 'user' => 'forums#index'
match 'news_root' => 'news#index'
match 'topic_post' => 'forums#index'
match 'quote_post' => 'forums#index'
match 'new_upload' => 'forums#index'
match 'videolinks/:id', :to => 'videolinks#show'
match 'register' => 'users#sign_up'
match 'login' => 'users#sign_in'
match 'users/find_users' => 'users#find_users'
match '/users/get_states/:country' => 'users#states'
match '/ban/:username' => 'users#ban'
match '/ban_user/:username' => 'users#ban_user'
match ':username' => 'users#show'
match ':username/edit' => 'users#edit'
match ':username/delete_files_all' => 'uploads#index'
match ':username/delete_files' => 'users#delete_files'
match ':username/upload_files' => 'users#upload_files'
match ':username/password/edit' => 'users#editpass'
match ':username/edit_file/:id' => 'uploads#edit'
match '/maketakeadmin/:username' => 'users#maketakeadmin'
match ':username/destroy' => 'users#destroy'
root :to => "home#index"
resources :categories do
member do
get 'confirm_delete'
end
end
別の開発者がこのアプリケーションのアップロード セクションに取り組み、ペーパークリップを使用しています。デフォルトでは、アップロードは公開ディレクトリに保存されますが、私たちはそれを望んでいませんでした。彼は、アプリケーションのルートから離れた「uploads」と呼ばれるプライベート ディレクトリにアップロードを保存する奇妙なホットフィックスを行ったと私に言いました。これが何か関係があるのか どうかはわかりません。