Скрепка для обновления базы данных с помощью NULLS для имени файла, размера файла и т. Д. В Rails3 - PullRequest
1 голос
/ 10 марта 2011

Я пытаюсь реализовать Paperclip в своем приложении Rails3 и использую Railscast от Emerson Lackey (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 нет. Вот вывод из вебрика:

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

Я ожидаю, что это как-то связано с макросами attr_accessible в двух моделях, но я не смог точно определить, что это такое. Исходный код Эмерсона не имеет изменений по сравнению со скаффолдингом для метода create, поэтому я не уверен, нужно ли мне обновлять мой, чтобы заставить детей сохранять значения из формы. У меня есть: html => {: multipart => true} в моем form_for @car на мой взгляд. Улики? Заранее спасибо.

1 Ответ

0 голосов
/ 10 марта 2011

вот код, который я использовал ранее на этой неделе на 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

надеюсь, что это помогает и дает некоторое понимание? Похоже, вам не хватает имени изображения в именах полей?

...