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

Ruby on rails 如何在索引视图中将一个模型的对象传递给另一个模型?,ruby-on-rails,model-view-controller,ruby-on-rails-5,Ruby On Rails,Model View Controller,Ruby On Rails 5,我正在使用HartlRails教程,对其进行修改以构建一个简单的论坛。多亏了本教程,我才有了可以工作的用户模型/控制器/视图,允许登录和注销以及跟踪当前用户。 我还有一个主题模型,它代表不同的感兴趣的主题。 用户模型的设置使每个用户都有许多主题 我目前在我的主题索引视图中列出了50个主题,并希望在每个主题旁边显示一个复选框或按钮,以便用户可以单击并订阅该主题 我找了好几个小时,不知道如何使用复选框将选中的主题添加到用户的主题列表中。我为这个宽泛的问题道歉,这是我最后的选择 这就是主题和用户架构的

我正在使用HartlRails教程,对其进行修改以构建一个简单的论坛。多亏了本教程,我才有了可以工作的用户模型/控制器/视图,允许登录和注销以及跟踪当前用户。 我还有一个主题模型,它代表不同的感兴趣的主题。 用户模型的设置使每个用户都有许多主题

我目前在我的主题索引视图中列出了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

我不知道这个问题还包括什么。我会仔细观察,以提供更多必要的信息。

我想你要找的是一个有很多联系的人。基本上,您希望创建第三个模型UserTopics,当您提交表单时,您将为每个选中的复选框创建一个UserTopic的新实例。这里有更多关于这方面的信息:


@如果你不想要一个额外的模型,那么你可以使用has\u和\u属于\u多个关联。您可以按照此处的说明进行操作:@RatnamYadav了解一个问题的多种解决方案总是好的!OP应该知道这里最大的区别是,因为没有第三个模型,所以如果需要的话,没有办法添加额外的验证、回调等。如果这不是一个问题,那么这也是一个很好的选择。@我使用has_和_-belish_-to_-many关联,因为我不需要额外的验证或回调,但不确定如何将其用于保存主题的表单,因为它不是一个新模型。@Tack您可以使用多选字段或复选框。例如: