1

Rails3 アプリに Paperclip を実装しようとしていて、Emerson Lackey の railscast (http://www.emersonlackey.com/article/paperclip-with-rails-3) をモデルとして使用しています。する (特定のモデルの複数の写真を用意する)。ただし、画像に関する NULLS 以外のものを保存する子オブジェクトを取得していません。

複数の車の写真を持つ親モデルの車を次に示します。

class Car < ActiveRecord::Base
attr_accessible  :model_year, :admin_model_name_id, :chassis_number, :location, :description, :for_sale, :sale_contact_info_visible_to_all, :sale_contact_number, :car_photos_attributes
has_many :car_photos, :dependent => :destroy
accepts_nested_attributes_for :car_photos, :allow_destroy => true

そして、車の写真のモデル:

class CarPhoto < ActiveRecord::Base
  belongs_to :car
  has_attached_file :car_photo, :styles => { :large => "640x480", :medium => "300x300>",   :thumb => "100x100>" }
  attr_accessible :file_name, :content_type, :file_size, :car_id
end

新しい車を保存すると、車は以前と同じように正常に保存されますが、CarPhotos は保存されません。Webrick からの出力は次のとおりです。

AREL (0.2ms)  INSERT INTO `car_photos` (`file_name`, `content_type`, `file_size`, `car_id`, `created_at`, `updated_at`) VALUES (NULL, NULL, NULL, 38, '2011-03-10 17:15:52', '2011-03-10 17:15:52')
[paperclip] Saving attachments.
[paperclip] Saving attachments.
  SQL (5.8ms)  COMMIT
Redirected to http://127.0.0.1:3000/cars/38
Completed 302 Found in 144ms

これは 2 つのモデルの attr_accessible マクロと関係があると思いますが、それが何であるかを正確に判断することはできませんでした。Emerson のソース コードには create メソッドの足場からの変更がないため、フォームから値を保存するように子を取得するために更新する必要があるかどうかはわかりません。ビューの form_for @car に :html => { :multipart => true } があります。手がかり?前もって感謝します。

4

1 に答える 1

0

今週初めにRails3で使用したコードは次のとおりです-私のモデルでは

has_attached_file :image1

attr_accessibleはありません

次に、フィールドをモデルに追加するためのアップマイグレーションは次のようになります。

add_column :offers, :image1_file_name, :string
add_column :offers, :image1_content_type, :string
add_column :offers, :image1_file_size, :integer
add_column :offers, :image1_updated_at, :datetime

それが助けになり、洞察を提供することを願っていますか?フィールド名から画像名が欠落しているように見えますか?

于 2011-03-10T17:40:39.610 に答える