Таблица по какой-то причине не создается - PullRequest
1 голос
/ 27 июня 2011

Я выполнил следующие команды:

rails generate scaffold order name:string address:text email:string pay_type:string   
rails generate migration add_order_id_to_line_item order_id:integer    
rake db:migrate

По какой-то причине db / schema.db не показывает таблицу заказов. Я даже попытался поместить его вручную в schema.db и перенести снова, но все равно не могу получить доступ к / orders: (

Кто-нибудь знает, что может быть причиной этого?

Ошибки доступа к странице: http://i.imgur.com/5OpZP.jpg
Результаты миграции: http://i.imgur.com/5OEsw.jpg

https://github.com/imjp/shop

1 Ответ

2 голосов
/ 27 июня 2011

Ваш файл миграции 20110623001141_combine_items_in_cart.rb не имеет надлежащей оболочки класса, кроме того, в нем есть методы, которых там быть не должно.

class CombineItemsInCart < ActiveRecord::Migration
    def self.up
        # replace multiple items for a single product in a cart with a single item
        Cart.all.each do |cart|
        # count the number of each product in the cart
            sums = cart.line_items.group(:product_id).sum(:quantity)

            sums.each do |product_id, quantity|
                if quantity >1
                    # remove individual items
                    cart.line_items.where(:product_id=>product_id).delete_all

                    # replace with a single item
                    cart.line_items.create(:product_id=>product_id, :quantity=>quantity)
                end
            end
        end
    end

    def self.down
        # split items with quantity>1 into multiple items
        LineItem.where("quantity>1").each do |line_item|
            # add individual items
            line_item.quantity.times do
                LineItem.create :cart_id=>line_item.cart_id,
                                :product_id=>line_item.product_id, :quantity=>1
            end

            # remove original item
            line_item.destroy
        end``
    end
end

У вас также есть дубликат внутри 20110626203934_add_oder_to_line_item.rb, который добавляет столбец, уже добавленный 20110626181924_add_order_id_to_line_item.rb. Удалите любой из них и попробуйте выполнить миграцию еще раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...