我已经阅读了很多问题,但他们都没有帮我解决这个问题。我正在尝试创建一个表单来创建新论坛,但无法让他们使用正确的类别ID。
<%= f.collection_select :category_id, Category.all, :id, :name %>
这会创建一个新论坛,但ID不是下拉列表中的类别ID。这是论坛模型
def new
@forum = Forum.new
end
def create
@forum = Forum.new(forum_params)
if @forum.save
redirect_to root_url
else
render 'new'
end
end
private
def forum_params
params.require(:forum).permit(:category_id, :name, :description )
end
end
不太确定我在这里做错了什么。这与外键有关吗?真的很感激任何帮助。
更新
论坛模型
class Forum < ActiveRecord::Base
belongs_to :category
has_many :topics, dependent: :destroy
end
类别模型
class Category < ActiveRecord::Base
has_many :forums, dependent: :destroy
end
答案 0 :(得分:0)
category_id
模型中基本上没有Forum
。
您可以采取以下措施来解决此问题。运行:
rails dbconsole
.schema
检查您是否有category_id
。如果没有,请为此创建一个新的迁移。
您的初始代码是正确的。出于某种原因,我误读了你的collection_select
已经绑定到模型。