参照している ActiveRecord クラスを除いて同一のメソッドが 2 つあります。
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
さて、これを組み合わせて、クラスと検索する文字列の 2 つの引数を取る何らかの種類の動的に作成されたメソッドにこれを組み合わせるには、より 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 を割り当てる必要があります。