/ / Jak powiązać dwa pola z Ruby on Rails? - ruby-on-rails, ruby, związki zagraniczne

Jak powiązać dwa pola z Ruby on Rails? - ruby-on-rails, ruby, związki zagraniczne

Po prostu zaczynamy używać Ruby on Rails, aby zobaczyć, jak to jest.

Mam model użytkownika z identyfikatorem i modelem posta z adderID. AdderId modelu posta powinien być identyfikatorem użytkownika, który go utworzył.

Jak mogę powiązać je z Ruby on Rails?

Odpowiedzi:

5 dla odpowiedzi № 1

Konwencja Rails dla kluczy obcych dałaby Twojemu modelowi Posta kolumnę user_id, a nie adderId. Możesz przerwać konwencję, ale wymaga to nieco więcej konfiguracji, jak poniżej:

class User < ActiveRecord::Base
has_many :posts, :foreign_key => :adderId
end

class Post < ActiveRecord::Base
belongs_to :adder, :class_name => "User", :foreign_key => :adderId
end

Jeśli zamiast tego podałeś Post a user_id, możesz to zrobić:

class User < ActiveRecord::Base
has_many :posts
end

class Post < ActiveRecord::Base
belongs_to :user
end

Polecam rzucić okiem na Przewodnik po szynach dla aktywnych powiązań rekordów, który obejmuje wszystkie powyższe i wiele więcej.


1 dla odpowiedzi nr 2

To wygląda jak to pytanie wydaje się robić to, co próbujesz zrobić.

Przepraszam, jeśli źle zrozumiałem twoje pytanie, ja też jestem nowy w Ruby on Rails.