Wie beziehe ich zwei Felder mit Ruby on Rails?
-
16-09-2019 - |
Frage
Verwenden Sie gerade Ruby auf Rails, um zu sehen, wie es ist.
Ich habe ein Benutzermodell mit einer ID und ein Postmodell mit einem Adderid. Das Adderid des Postmodells sollte die Benutzer -ID des Benutzers sein, die es erstellt hat.
Wie kann ich diese mit Ruby on Rails erzählen?
Lösung
Die Rails Convention for Foreign Keys würde Ihrem Postmodell eher eine user_id -Spalte als Adderid geben. Sie können die Konvention brechen, aber dies erfordert etwas mehr Konfiguration, wie unten:
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
Wenn Sie stattdessen einen user_id gegeben haben, könnten Sie dies tun:
class User < ActiveRecord::Base
has_many :posts
end
class Post < ActiveRecord::Base
belongs_to :user
end
Ich würde empfehlen, einen Blick auf das zu werfen Rails Guide für aktive Rekordverbände, das alles oben genannte und noch viel mehr abdeckt.
Andere Tipps
Es sieht aus wie diese Frage scheint zu tun, was du versuchst zu tun.
Tut mir leid, wenn ich Ihre Frage missverstanden habe, bin auch ich neu in Ruby on Rails.