0

作業中のRubyアプリで画像をアップロードしようとすると、内部サーバーエラーが発生します。問題自体はわかっていますが、修正方法が完全にはわかりません。今のところ、これはアプリがどのように機能するかです:

ユーザーがページにアクセスし、画像をアップロードすることが許可され、アップロード後に画像の処理が行われます。したがって、ユーザーがページにアクセスしたときに新しいギャラリーインスタンスを作成しています(ギャラリーには1つまたは複数の画像があります)。問題は、以下を作成しようとしているギャラリーコントローラーにあります。

    def index
    @gallery = Gallery.create
    @picture = @gallery.pictures.build

    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @galleries }
    end
  end

「localhost:3000 /galleries/」を実行すると次のエラーが発生します

Completed 500 Internal Server Error in 148ms

ActionView::Template::Error (undefined method `gallery_pictures_path' for #<#<Class:0x000001023d8b98>:0x00000102383670>):
    3: <%= javascript_include_tag 'jquery.fileupload-ui.js' %>
    4: 
    5: 
    6: <%= form_for [@gallery, @picture], :html => { :multipart => true, :id => "fileupload" } do |f| %>
    7: 
    8:     <div>
    9:         <div class=" fileupload-buttonbar">
  app/views/galleries/index.html.erb:6:in `_app_views_galleries_index_html_erb__2795478836341012416_2164674980'
  app/controllers/galleries_controller.rb:8:in `index'

プロジェクト自体はここのGitHubにあります:https ://github.com/dflynn15/UploaderTest

この問題は、Gallery.createと新しいインスタンスの作成方法(孤立したインスタンスが実行されるリスクはわかっていますが、このアップロードの問題を修正した後に有効期限を実装する予定です)を理解しているか、またはPicturesとGalleryがどのように接続されているかにより、@gallery.picturesが無効なパスになることはできません。

助けてくれてありがとう!

4

1 に答える 1

0

ルートでこれを試してください.rb

resources :galleries, :shallow => true do
    resources :pictures
end
于 2012-07-03T14:20:11.713 に答える