我正在使用Hartl Rails教程,使其适应于构建一个简单的论坛。感谢教程,我有工作用户模型/控制器/视图,允许登录和注销并跟踪当前用户。我还有一个“主题”模型,代表不同的感兴趣的主题。设置用户模型,以便每个用户拥有多个主题。
我目前在我的主题索引视图中列出了50个主题,并希望在每个主题旁边显示一个复选框或按钮,以便用户可以单击并订阅该主题。
我已经查了几个小时,无法弄清楚如何使用复选框将选中的主题添加到用户的主题列表中。我为这个广泛的问题道歉,这是我的最后一招。
这就是主题和用户架构的样子:
create_table "topics", force: :cascade do |t|
t.string "topic_name"
t.integer "user_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["user_id"], name: "index_topics_on_user_id"
end
create_table "users", force: :cascade do |t|
t.string "name"
t.string "email"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "password_digest"
t.index ["email"], name: "index_users_on_email", unique: true
end
我不确定这个问题还包括什么。我将密切关注提供更多必要的信息。
我认为你所寻找的是一个has_many_through
协会。基本上你想要创建第三个模型UserTopics
,当你提交表单时,你会为每个选中的复选框创建一个UserTopic的新实例。这里有更多关于此的信息: