【发布时间】:2023-04-01 14:15:01
【问题描述】:
我发现了几个关于该主题的问题,并按照说明为我的模型添加了图像。但是,在播种时,即使我的模型有它,我也会收到错误“PG::UndefinedColumn: ERROR: column foods.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
知道为什么我的种子失败了:?谢谢!
【问题讨论】:
-
不是 100% 确定,但我认为这可能是您提供的路径不正确。试试:
meal_avatar: File.new(Rails.root.join("app", "assets", "images", "salad.jpg")) -
没用。得到同样的错误。不过谢谢你:)
-
你遇到了什么错误?
-
和之前一样 ActiveRecord::StatementInvalid: PG::UndefinedColumn: ERROR: 列饭菜.meal_avatar 不存在
-
尝试重启服务器?另外,你在哪里使用
meal_seed(你有find_or_create_by(meal_params))?
标签: ruby-on-rails paperclip seed