RailsのObjectsにbelunks_to
-
30-09-2019 - |
質問
こんにちは私は現在、Rails(3)を使用して小さなフォーラムアプリケーションを構築しています。私はレールの問題にかなり新しいので、トピックにこだわっています。
私は2つのモデルを持っています(トピック&Topic_reply)
トピックモデル:
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
トピック返信モデル:
class TopicReply < ActiveRecord::Base
belongs_to :topic
belongs_to :user
end
トピックを作成するとき、Topic_replies(トピック内のすべての投稿)を除いて、すべてが正常に表示されています)
その理由は、私のTopic_replyオブジェクトがすべてを正しく保存します。
トピックを作成するためのトピックコントローラーの一部は次のとおりです。
# 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
私があまりにも少ない情報を投稿した場合、私が何をしているのかが私があなたが必要なものを追加することを私に知らせてください。
前もって感謝します
解決
あなたの外国の鍵に名前を付ける必要があります topic_id
, poster_id
と board_id
これらはレールのデフォルト値であるためです。モデルで非デフォルト列を定義しているわけではないため、現在のコードは機能しません。
所属していません StackOverflow