Generuj migrację-Utwórz tabelę przyłączenia

Przejrzałem wiele postów SO i google do generowania migracji tabeli join dla Stowarzyszenia has many and belongs to many i nic nie działa.

Wszystkie rozwiązania generują pusty plik migracji.

Używam rails 3.2.13 i mam dwie tabele: security_users i assignments. To są niektóre rzeczy, które wypróbowałem:

rails generate migration assignments_security_users

rails generate migration create_assignments_security_users

rails generate migration create_assignments_security_users_join_table

rails g migration create_join_table :products, :categories (following the official documentation)

rails generate migration security_users_assignments security_user:belongs_to assignments:belongs_to 

Czy ktoś może powiedzieć, jak utworzyć migrację tabeli join pomiędzy dwoma tabelami?

Author: gotqn, 2013-07-20

3 answers

Uruchom to polecenie, aby wygenerować pusty plik migracji (nie jest wypełniany automatycznie, musisz go wypełnić samodzielnie):

rails generate migration assignments_security_users

Otwórz wygenerowany plik migracji i dodaj ten kod:

class AssignmentsSecurityUsers < ActiveRecord::Migration
  def change
    create_table :assignments_security_users, :id => false do |t|
      t.integer :assignment_id
      t.integer :security_user_id
    end
  end
end

Następnie uruchom {[2] } z terminala. Stworzyłem quiz na temat wielu_to_many relacji z prostym przykładem, który może Ci pomóc.

 35
Author: Powers,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-02 01:30:41

Aby autopopulować polecenie create_join_table w wierszu poleceń, powinno ono wyglądać następująco:

rails g migration CreateJoinTableProductsSuppliers products suppliers

Dla modelu produktu i modelu dostawcy. Rails utworzy tabelę o nazwie "products_suppliers". Zwróć uwagę na pluralizację.

(zwróć uwagę, że polecenie generation można skrócić do tylko g)

 129
Author: andrewcockerham,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-14 12:49:34

Zwykle lubię mieć plik "model", jak również podczas tworzenia tabeli join. Dlatego tak.

rails g model AssignmentSecurityUser assignments_security:references user:references
 14
Author: Prakash Raman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-28 10:51:51