我有桌子User和桌子类别.
这两个表之间的关系:
- user
has_many :categories
- 类别
belongs_to :user
我想在用户的(标准)编辑页面上显示带有复选框的类别列表。当该用户选中某些复选框时,我想保存它们,然后在下次打开页面时显示为选中状态。
但是如何在视图中呈现复选框呢?以及如何在数据库中存储有关用户选中的复选框的信息?
我的第一个想法是创建一个像这样的表用户类别 with user_id
and category_id
,但不确定这种方法有多有效。
目前执行此任务的最佳方法是什么?
除了引入强参数之外,最近没有太大变化。您仍然想使用has_and_belongs_to_many
or 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)