2

いくつかの関連付けを持つオブジェクトがあります。これらの関連付けられたオブジェクトの一部には、S3 に保存されているクリップの添付ファイルがあります。オブジェクトと関連付けを複製すると正常に動作しますが、添付ファイルは複製されません。

これは、画像を取得せずに機能します。

copy_salon = @salon.dup 
copy_salon.about_us_versions = @salon.about_us_versions.collect{|about_us| about_us.dup}

次のような画像リンクを取得しようとしました:

copy_salon = @salon.dup 
copy_salon.about_us_versions = @salon.about_us_versions.collect{|about_us| 
                                                                  about_us_dup = about_us.dup
                                                                  if about_us.about_us_image then about_us_dup.about_us_image = about_us.about_us_image end
                                                                  if about_us.team_image then about_us_dup.team_image = about_us.team_image end
                                                                  about_us_dup
                                                                }

しかし、おそらくすべての画像が設定されているわけではないため、「nilを文字列に変換できません」というエラーが表示されます。

4

2 に答える 2

1

エレガントではありませんが、機能しています。私は、dup がすべての関連付けと添付ファイルを含むオブジェクトを複製することを望んでいました。そのための宝石はありませんか?

copy_salon = @salon.dup 
copy_salon.about_us_versions = @salon.about_us_versions.collect{|about_us| 
                                                                  about_us_dup = about_us.dup
                                                                  unless about_us.about_us_image.url == "/about_us_images/original/missing.png" then about_us_dup.about_us_image = about_us.about_us_image end
                                                                  unless about_us.team_image.url == "/team_images/original/missing.png" then about_us_dup.team_image = about_us.team_image end
                                                                  about_us_dup
                                                                }
于 2012-07-11T23:53:22.017 に答える