0

私はプロジェクトに取り組んでおり、ショー ビューの 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」と呼ばれるプライベート ディレクトリにアップロードを保存する奇妙なホットフィックスを行ったと私に言いました。これが何か関係があるのか​​ どうかはわかりません。

4

2 に答える 2

0

次のようなものを使用する必要があると思います。

<%= image_tag "/images/16x16/actions/filesave.png", class: "icon", alt: "save" %>
于 2012-07-04T12:28:24.563 に答える
0

パスの先頭にスラッシュが必要です。

于 2012-07-03T19:52:31.397 に答える