最近rails勉強し始めたものなんですが、既存のテーブルに新しいカラムを追加が思うようにいかなくてどうしたらいいかわからないので質問させていただきました。
実際やったこととしましては、カテゴリー機能を追加したくて、categoriesのテーブル追加と、productsのテーブルにcategory_idを追加しました。ここで追加したはずのcategory_idが見つからず困っています。
今回qiitaのサイトを参考にしました(https://qiita.com/garannodou@github/items/acc99224a4ee64b14326)
現在のコードです。
マイグレーション
class AddCategoryIdToProducts < ActiveRecord::Migration[5.1] def self.up add_column(:products, :category_id, :integer) add_index(:products, :category_id) end def self.down remove_index(:products, :column => :category_id) remove_column(:products, :category_id) end end
schema.rb
ActiveRecord::Schema.define(version: 20180412102501) do create_table "categories", force: :cascade do |t| t.string "c_name" t.datetime "created_at", null: false t.datetime "updated_at", null: false end create_table "products", force: :cascade do |t| t.string "title" t.text "description" t.string "image_url" t.decimal "price", precision: 8, scale: 2 t.datetime "created_at", null: false t.datetime "updated_at", null: false end end
model
class Category < ApplicationRecord has_many :products end class Product < ApplicationRecord belongs_to :category validates :title, :description, :image_url, presence: true validates :price, numericality: {greater_than_or_equal_to: 0.01} validates :title, uniqueness: true validates :image_url, allow_blank: true, format: { with: %r{.(gif|jpg|png)\z}i, message: 'はgif,jpg,png画像のURLでなければなりません' } end
以上です。これからやりたいこととしましては、product.category_id.c_nameとかで商品の詳細画面にカテゴリー名出したりしたいと思っています。何かお気づきになった方いましたらアドバイスなどご教授いただけましたら幸いです。宜しくお願いします!
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。