簡體   English   中英

Rails-使用回形針圖像進行播種

[英]Rails - seeding with paperclip images

我在該主題上發現了幾個問題,並按照說明為模型添加了圖像。 但是,播種時出現錯誤“ PG :: UndefinedColumn:ERROR:列餐.meal_avatar不存在”,即使我的模型具有它也是如此。 這是我的用餐模式

class Meal < ActiveRecord::Base
  has_attached_file :meal_avatar, styles: { large: '300x300' }, default_url: '/images/:style/missing.png'
  validates_attachment_content_type :meal_avatar, content_type: /\Aimage\/.*\Z/
end

這是遷移

  def self.up
    change_table :meals do |t|
      t.attachment :meal_avatar
    end
  end

控制器中允許的參數

  def meal_params
    params.require(:meal).permit(:name, :meal_avatar)
  end

我播種圖像的方式(沒有上下文,但是您可以理解)

meal_seed = [
  {
    name: "Salad",
    meal_avatar: File.new("app/assets/images/salad.jpg")
  }
]
meal_seed.each do |meal_params|
  meal = category.meals.find_or_create_by(meal_params)
end

知道為什么我的種子失敗了嗎? 謝謝!

這與find_or_create_by 我相信發現是在回形針對象被處理之前發生的,這就是為什么它試圖查找meal_avatar

將它們分成兩行。

meal_seed.each do |meal_params|
  avatar = meal_params.delete(:meal_avatar)
  meal = category.meals.find_or_initialize_by(meal_params)
  meal.meal_avatar = avatar

  meal.save
end

試試這個可能對你有用!

meal_seed.each_with_index do |meal_params, index|
  Meal.create!(meal_params)  
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM