ruby-on-rails - 多对多在 Rails 中出现“无效”错误
问题描述
我正在尝试建立多对多的关系,但是:roles=>[{:error=>:invalid}]
在尝试保存时却得到了。
楷模
class User < ApplicationRecord
has_many :user_roles, dependent: :destroy
has_many :roles, through: :user_roles
end
class Role < ApplicationRecord
has_many :children, :class_name => "Admin::Role", foreign_key: "parent_id"
belongs_to :parent, :class_name => "Admin::Role"
has_many :user_roles, dependent: :destroy
has_many :users, through: :user_roles
end
class Admin::UserRole < ApplicationRecord
belongs_to :user
belongs_to :role
end
控制器
def new
@user = User.new
end
def create
@user = User.new(user_params)
respond_to do |format|
if @user.save
redirect_to users_url
end
end
end
def user_params
params.require(:user).permit(:role_ids => [])
end
_form.html.erb
form_with(model: user) do |form|
form.collection_select(:role_ids, Roles.all, :id, :title, multiple: "multiple")
end
参数日志
"user"=>{"role_ids"=>["", "1"]}
解决方案
推荐阅读
- angular - 如何在特定文件夹上运行 ng lint - 不是通过排除,而是通过包含某些文件夹?
- json - JIRA API POST jql 搜索
- sql - Oracle SQl Dev,显示 id、firstname、surname 和 users 文件数
- c++ - 使用字符数组的字符串输入问题c ++
- javascript - tampermonkey 中带有 GM_xmlhttpRequest 的简单脚本每秒运行一次 - 内存泄漏
- python - Neovim 在运行 input() 时抛出错误,在 Vim 中运行正常
- android - 使用依赖项构建 AAR
- android - 通过 UIautomator 查找元素
- c# - 在 Simple Injector 中注册期间设置收集项目的生活方式
- python - 如何在 Python3 中修复我的“添加函数使用按位运算符”代码?