如何在索引视图中将一个模型的对象传递给另一个模型?

问题描述 投票:0回答:1

我正在使用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

我不确定这个问题还包括什么。我将密切关注提供更多必要的信息。

ruby-on-rails model-view-controller ruby-on-rails-5
1个回答
1
投票

我认为你所寻找的是一个has_many_through协会。基本上你想要创建第三个模型UserTopics,当你提交表单时,你会为每个选中的复选框创建一个UserTopic的新实例。这里有更多关于此的信息:

https://guides.rubyonrails.org/association_basics.html

© www.soinside.com 2019 - 2024. All rights reserved.