gpt4 book ai didi

ruby-on-rails - Rails - 如何在数据库中存储 "has_many"复选框关联?

转载 作者:数据小太阳 更新时间:2023-10-29 07:28:46 26 4
gpt4 key购买 nike

我有表用户和表类别

这两个表的关系:

  • 用户 有_many :categories
  • 类别属于:用户

我想在用户的(标准)编辑页面上显示带有复选框的类别列表。当这个用户勾选某些复选框时,我想保存它们,然后在他下次打开页面时显示为选中。

但是如何在 View 中渲染复选框呢?以及如何存储有关用户在数据库中选中的复选框的信息?我的第一个想法是用 user_idcategory_id 创建一个类似 user_categories 的表,但不确定这种方法的效果如何。

如今执行此任务的最佳方法是什么?

最佳答案

除了引入强参数外,最近没有太大变化。您仍然想使用 has_and_belongs_to_manyhas_many :through 关系,然后直接分配关系的 ID。您需要设置一个表单来传递一组选定的 ID,以便它们像 {user: {category_ids => [1,2,3]} 一样出现。

class User < ActiveRecord::Base
has_and_belongs_to_many :categories
end

在 Controller 中

def update
current_user.update(user_params)
end

def user_params
params[:user].permit(
{:category_ids => []}
)
end

关于ruby-on-rails - Rails - 如何在数据库中存储 "has_many"复选框关联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19634213/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com