加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails – 如何在数据库中存储“has_many”复选

发布时间:2020-12-17 03:06:07 所属栏目:百科 来源:网络整理
导读:我有表User和表Categories. 这两个表之间的关系: user has_many:类别 category belongs_to:user 我想在用户的(标准)编辑页面上显示带有复选框的类别列表.当该用户检查一些复选框时,我想保存它们,然后在下次打开页面时显示为已选中. 但是如何在视图中呈现
我有表User和表Categories.

这两个表之间的关系:

> user has_many:类别
> category belongs_to:user

我想在用户的(标准)编辑页面上显示带有复选框的类别列表.当该用户检查一些复选框时,我想保存它们,然后在下次打开页面时显示为已选中.

但是如何在视图中呈现复选框?以及如何存储用户在数据库中检查的复选框的信息?
我的第一个想法是使用user_id和category_id创建一个类似user_categories的表,但不确定这种方法的效果如何.

现在实施这项任务的最佳方法是什么?

解决方法

除了引入强参数外,最近没有太大变化.您仍然希望使用has_and_belongs_to_many或has_many:through关系,然后直接分配关系的ID.您需要设置一个表单,该表单传递一系列选定的ID,以便它们像{user:{category_ids => [1,2,3]}.

class User < ActiveRecord::Base
  has_and_belongs_to_many :categories
end

在控制器中

def update
  current_user.update(user_params)
end

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读