2013-10-01 10 views
7

ja mam poniżej metę polecenia na konsoliRails wygenerować migracja nie działa

rails g migration payslips first_name:string last_name:string 

Ale to właśnie tworzy pusty plik jak poniżej

class Payslips < ActiveRecord::Migration 
    def change 
    end 
end 

nie mogę znaleźć przyczynę. Czy coś jest nie tak z poleceniem generowania konsoli?

+0

Dlaczego sądzisz, że jest coś nie tak ze nie Generator wejściowego dajesz do generatora? Czy próbujesz dodać kolumny do tabeli lub utworzyć nową tabelę? Tak czy inaczej, musisz określić, co próbujesz zrobić. Zajrzyj do przewodnika po szynach http://guides.rubyonrails.org/migrations.html#creating-a-migration – j03w

+0

'generator migracji' nie tworzy pliku migracji z dodanymi kolumnami, ale po prostu pusty plik mam już model odcinka wypłaty tak Potrzebuję utworzyć nowy plik migracji tylko –

+0

Spróbuj 'rails g migration AddFirstNameAndLastNameToPayslips first_name: string last_name: string'. Rails nie jest tak inteligentny, aby odgadnąć, co próbujesz zrobić, podając nazwę tabeli, którą znasz. Proszę [przeczytaj dokument] (http://guides.rubyonrails.org/migrations.html#creating-a-migration) – j03w

Odpowiedz

6

jest poprawna funkcjonalność, jeśli chcesz stworzyć model to trzeba uruchomić:

rails g model payslips first_name:string last_name:string 

Następnie otrzymasz:

class CreatePayslips < ActiveRecord::Migration 
    def change 
    create_table :payslips do |t| 
     t.string :first_name 
     t.string :last_name 

     t.timestamps 
    end 
    end 
end 
0

Można wygenerować sam migrację do modyfikowania tabel. Jednak, aby stworzyć nową tabelę trzeba wygenerować modelu tak, że będzie generować tworzyć migrację tabel dla odpowiedniego modelu (jak @efrenfuentes powiedział)

Albo można spróbować tego, co chcesz zrobić z plugin o nazwie migration_for

rails plugin install git://github.com/capotej/migration_for.git

rails g migration_for create_table:payslips add_column:payslips:first_name:string add_column:payslips:last_name:string

2

Zakładając, że Twój model został stworzony, trzeba być bardziej wyraźne, gdy wyjaśnienia, co naprawdę chcesz robić:

rails g migration add_first_name_and_last_name_to_payslips first_name:string last_name:string 

Powyższy mówi migrator dodawania first_name i last_name do stołu odcinki wypłat, więc skończyć z tym migracji:

class AddFirstNameAndLastNameToPayslips < ActiveRecord::Migration 
    def change 
    add_column :payslips, :first_name, :string 
    add_column :payslips, :last_name, :string 
    end 
end 
2

używać słowa: Tworzenie przed nazwą tabeli.

$ szyny wygenerować nazwę createproducts migracji: string PART_NUMBER: string

generuje:

class CreateProducts < ActiveRecord::Migration 
    def change 
    create_table :products do |t| 
     t.string :name 
     t.string :part_number 
    end 
    end 
end 

źródło: http://guides.rubyonrails.org/migrations.html

+0

Generuje to dla mnie pustą migrację. Szyny 3.2.2 Ruby 2.1.5p273 –

+1

dla ud też: '' 'createproducts klasy Jan

Powiązane problemy