belongs_to Objekte in Schienen
-
30-09-2019 - |
Frage
Hallo, ich bin derzeit der Aufbau eine kleine Forum-Anwendung mit Schienen (3). Ich bin ziemlich neu in den Rails Angelegenheit und ich habe fest mit den Themen.
Ich habe 2 Modelle (Thema & topic_reply)
Themenmodell:
class Topic < ActiveRecord::Base
belongs_to :board
belongs_to :user
has_many :topic_replies, :dependent => :destroy
TOPIC_TYPES = ["Non-support", "Question"]
validates :topic_type, :inclusion => TOPIC_TYPES
end
Thema Antwort Modell:
class TopicReply < ActiveRecord::Base
belongs_to :topic
belongs_to :user
end
Wenn ich ein Thema alles bin zu schaffen fein ist die Anzeige mit Ausnahme der topic_replies (alle Stellen innerhalb des Themas)
Der Grund dafür ist:. Mein topic_reply Objekt speichert alles richtig, außer es nicht rettet das das topic_id in dem Objekt und somit in meinem db
hier ist ein Teil meines Themas Controller ein Thema zu erstellen:
# GET /topics/new
# GET /topics/new.xml
def new
@topic = Topic.new
@topic_reply = @topic.topic_replies.build
respond_to do |format|
format.html # new.html.erb
end
end
# POST /topics
# POST /topics.xml
def create
@topic = Topic.new(params[:topic])
@topic.id_board = @board.id
@topic_reply = @topic.topic_replies.build(params[:topic_reply])
@topic_reply.id_topic = @topic.id
@topic_reply.id_poster = User.first.id
respond_to do |format|
if @topic.save && @topic_reply.save
format.html { redirect_to(topic_path("#{@board.name.parameterize}-#{@board.id}", "#{@topic.title.parameterize}-#{@topic.id}")) }
else
format.html { render :action => "new" }
end
end
end
Hat jemand eine Idee, was ich falsch mache, wenn ich zu wenig Informationen veröffentlicht lassen Sie mich wissen, werde ich hinzufügen, was Sie brauchen.
Vielen Dank im Voraus
Lösung
Ihre Fremdschlüssel sollte topic_id
, poster_id
und board_id
, da diese Standardwerte in Rails sind benannt werden. Sie definieren nicht Nicht-Standard-Spalten in Ihren Modellen, so den aktuellen Code kann nicht funktionieren.