除了它们引用的 ActiveRecord 类之外,我有两种相同的方法:
def category_id_find(category_name)
category = Category.find_by_name(category_name)
if category != nil
return category.id
else
return nil
end
end
def brand_id_find(brand)
brand = Brand.find_by_name(brand)
if brand != nil
return brand.id
else
return nil
end
end
现在,我只知道必须有一种更 Railsy/Ruby 的方式来将其组合成某种动态创建的方法,该方法需要两个参数,即要查找的类和字符串,所以我尝试(但失败)了这样的事情:
def id_find(class, to_find)
thing = (class.capitalize).find_by_name(to_find)
if thing.id != nil
return thing.id
else
return nil
end
end
这意味着我可以打电话id_find(category, "Sports")
在从包含所有数据的单个怪物 CSV 文件播种期间,我必须填充表。因此,例如,我必须从 CSV 中获取所有不同的类别,将它们放入类别表中,然后根据刚刚填充的类别表中的 id 分配每个项目的 category_id,如果这有意义的话......