我正在尝试使用 Ruby on Rails 编写一个论坛。
在模型方面,我完成了主题和论坛之间的关联
# forum.rb
class Forum < ActiveRecord::Base
has_many :topics
attr_accessible :name, :description
end
# topic.rb
class Topic < ActiveRecord::Base
has_many :posts
belongs_to :forum
end
论坛控制器
# forums_controller.rb
class ForumsController < ApplicationController
def new
@forum = Forum.new
end
def create
@forum = Forum.new(params[:forum])
if @forum.save
flash[:success] = "Success!"
redirect_to @forum
else
render 'new'
end
end
def index
@forums = Forum.all
end
def show
@forum = Forum.find(params[:id])
end
end
主题控制器
class TopicsController < ApplicationController
def new
@topic = current_forum???.topics.build
end
def create
@topic = Topic.new(params[:topic])
if @topic.save
flash[:success] = "Success!"
redirect_to @topic
else
render 'new'
end
end
def index
@topics = Topic.all
end
def show
@topic = Topic.find(params[:id])
end
end
如何更改主题控制器以确保主题是为当前new
论坛而不是其他论坛创建的?create
例如,如果我从一个 id=1 的论坛创建一个新主题,我如何确保创建的新主题的 forum_id=1?