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

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top