Witam
Poznaję Rubyego i zainteresowała mnie taka sprawa:
Generuję sobie dwa formularze za pomocą scaffold
- grupa nazwa:string
- user login:string grupa_id:integer
Modele:
[code]class User < ActiveRecord::Base
has_one :grupa
end
class Grupa < ActiveRecord::Base
has_many :users
end[/code]
Żeby to ze sobą połączyć modyfikuję plik plik migracji bazy danych i wygląda on tak:
[code]class CreateUsers < ActiveRecord::Migration
def self.up
create_table :users do |t|
t.string :login
t.integer :grupa_id, :null => false, :options => “CONSTRAINT fk_grupa REFERENCES grupas(id)”
t.timestamps
end
end
def self.down
drop_table :users
end
end[/code]
Pliku z migracją dla tabeli grupa nie ruszam i wygląda tak jak powstał z generatora:
[code]class CreateGrupas < ActiveRecord::Migration
def self.up
create_table :grupas do |t|
t.string :nazwa
t.timestamps
end
end
def self.down
drop_table :grupas
end
end[/code]
Teraz pytania:
-
Czy jest jakiś sposób łączenia ze sobą tabel w bazie, czy trzeba to robić ręcznie?
-
Zmodyfikowany widok formularza dla usera zawiera fragment:
[code]
<%= f.label :grupa_id %>
<%= f.select :grupa_id, “nie_wiem_co”, :prompt => “jaka grupa” %>
- W user wpisałem “has_one :grupa”. Czy jest to OK, czy może powinno być belongs_to :grupa?
Dzięki
Pozdrawiam
Tomek