我正在使用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
我不确定该问题还包括什么。我将全神贯注地提供更多必要的信息。
答案 0 :(得分:1)
我认为您要寻找的是has_many_through
关联。基本上,您希望创建第三个模型UserTopics
,并且在提交表单时,将为每个选中的复选框创建一个UserTopic的新实例。这里有更多有关此的信息: