0

アップロードした写真を削除すると、なぜかその写真が属しているアルバムも自動的に削除されてしまいます。

どのモデルにも「依存破壊」を設定していないので、意味がありません。

端末ログは次のとおりです。

Started DELETE "/settings/photo_gallery/photos/86" for 127.0.0.1 at 2012-08-28 22:39:50 +0100
[af820895e0bf5c0b031bb5ea297290ee] [127.0.0.1] Processing by PhotosController#destroy as JS
[af820895e0bf5c0b031bb5ea297290ee] [127.0.0.1]   Parameters: {"id"=>"86"}
[af820895e0bf5c0b031bb5ea297290ee] [127.0.0.1]   Photo Load (0.4ms)  SELECT `photos`.* FROM `photos` WHERE `photos`.`id` = 86 LIMIT 1
[af820895e0bf5c0b031bb5ea297290ee] [127.0.0.1]   PhotoAlbum Load (0.2ms)  SELECT `photo_albums`.* FROM `photo_albums` WHERE `photo_albums`.`photo_id` = 86 LIMIT 1
[af820895e0bf5c0b031bb5ea297290ee] [127.0.0.1]   Profile Load (3.2ms)  SELECT `profiles`.* FROM `profiles` WHERE `profiles`.`photo_id` = 86 LIMIT 1
[af820895e0bf5c0b031bb5ea297290ee] [127.0.0.1]    (0.3ms)  BEGIN
[af820895e0bf5c0b031bb5ea297290ee] [127.0.0.1]   SQL (0.6ms)  DELETE FROM `photos` WHERE `photos`.`id` = 86
[af820895e0bf5c0b031bb5ea297290ee] [127.0.0.1]    (12.0ms)  COMMIT
[af820895e0bf5c0b031bb5ea297290ee] [127.0.0.1]   PhotoAlbum Load (15.2ms)  SELECT `photo_albums`.* FROM `photo_albums` WHERE `photo_albums`.`id` = 36 LIMIT 1
[af820895e0bf5c0b031bb5ea297290ee] [127.0.0.1] Redirected to http://localhost:3000/settings/photo_gallery/36
[af820895e0bf5c0b031bb5ea297290ee] [127.0.0.1] Completed 302 Found in 46ms (ActiveRecord: 31.9ms)
[affa94ee1fa7dde2725d6f75c8cfb998] [127.0.0.1] 

Started DELETE "/settings/photo_gallery/36" for 127.0.0.1 at 2012-08-28 22:39:50 +0100
[affa94ee1fa7dde2725d6f75c8cfb998] [127.0.0.1] Processing by PhotoAlbumsController#destroy as JS
[affa94ee1fa7dde2725d6f75c8cfb998] [127.0.0.1]   Parameters: {"id"=>"36"}
[affa94ee1fa7dde2725d6f75c8cfb998] [127.0.0.1]   PhotoAlbum Load (1.2ms)  SELECT `photo_albums`.* FROM `photo_albums` WHERE `photo_albums`.`id` = 36 LIMIT 1
[affa94ee1fa7dde2725d6f75c8cfb998] [127.0.0.1]    (0.1ms)  BEGIN
[affa94ee1fa7dde2725d6f75c8cfb998] [127.0.0.1]   SQL (0.3ms)  DELETE FROM `photo_albums` WHERE `photo_albums`.`id` = 36
[affa94ee1fa7dde2725d6f75c8cfb998] [127.0.0.1]    (4.6ms)  COMMIT
[affa94ee1fa7dde2725d6f75c8cfb998] [127.0.0.1] Redirected to http://localhost:3000/settings/photo_gallery
[affa94ee1fa7dde2725d6f75c8cfb998] [127.0.0.1] Completed 302 Found in 22ms (ActiveRecord: 6.3ms)
[e5d66fa562a52440eb4e710bfc660402] [127.0.0.1] 

フォト アルバム モデル:

class PhotoAlbum < ActiveRecord::Base

    belongs_to :user
    has_many :photos
    belongs_to :photo

    attr_accessible :album_title, :user_id, :photo_id

写真のモデル:

class Photo < ActiveRecord::Base


    belongs_to :photo_album


    attr_accessible :photo_album_id, :photo_title, :image, :remote_image_url, :banner_axis
    mount_uploader :image, ImageUploader

ユーザーが表示するビュー:

<%= link_to "", @banner, :confirm => 'Are you sure?', :method => :delete, :remote => true %>

ユーザーコントローラーショーアクション:

 def show
   profile_banner_album_id = @user.photo_albums.find_by_album_title("profile banner").id
   @banner = Photo.find_by_photo_album_id(profile_banner_album_id)
 end

私はしばらくレールから離れていたので少し錆びていたので、かなり明白なものを見落としているかもしれません。ログを見ると、写真が削除された後に写真アルバムを削除する理由がわかりません。

ここでいくつかの助けを楽しみにしています。敬具

4

2 に答える 2

1

この行:

[af820895e0bf5c0b031bb5ea297290ee] [127.0.0.1] Completed 302 Found in 46ms (ActiveRecord: 31.9ms)

最初のアクションが完了し、2 番目のアクションが同時に呼び出されていることを示唆しています。photo_gallery#index に変なものはありませんか?それとも写真モデルのフィルター?

于 2012-08-28T22:22:28.393 に答える
1
Started DELETE "/settings/photo_gallery/36" for 127.0.0.1 at 2012-08-28 22:39:50 +0100
[affa94ee1fa7dde2725d6f75c8cfb998] [127.0.0.1] Processing by PhotoAlbumsController#destroy as JS

これは、破棄アクションが JS を介してアルバム コントローラーで呼び出されることを意味します。

これは Rails の問題ではありません。写真を削除した後にアルバムを破棄する別の JS 呼び出しがあります。

写真の削除ボタンを押すと、アルバムの削除ボタンも一緒にクリックされてしまうとか…。

于 2012-08-28T22:28:53.473 に答える