belongs_to oggetti in rotaie
-
30-09-2019 - |
Domanda
Ciao Attualmente sto costruendo una piccola applicazione forum con rotaie (3). Sono abbastanza nuovo nelle rotaie materia e sono rimasto bloccato con gli argomenti.
Ho 2 modelli (argomento & topic_reply)
modello topic:
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
topic standard di risposta:
class TopicReply < ActiveRecord::Base
belongs_to :topic
belongs_to :user
end
Quando sto creando un argomento tutto è la visualizzazione di bene, tranne per i topic_replies (tutti i posti all'interno del tema)
Il motivo è il seguente:. Il mio oggetto topic_reply salva tutto correttamente tranne che non salva il il topic_id nell'oggetto e, quindi, nel mio db
ecco una parte del mio controller argomento per creare un tema:
# 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
Qualcuno ha idea di cosa sto facendo male se ho postato anche meno informazioni fatemi sapere io aggiungo quello che ti serve.
Grazie in anticipo
Soluzione
I tuoi chiavi esterne deve essere denominato topic_id
, poster_id
e board_id
in quanto questi sono i valori di default in Rails. Non sta definendo le colonne non predefiniti nei modelli, in modo che il codice corrente non può lavoro.