我实际上是将ID数组发布到我的Rails API,但是该数组作为哈希值接收,其中键是该数组的索引。
我已经尝试允许使用参数params.permit(permission_ids: [])
,什么也没有...
用户迁移
class CreateUsers < ActiveRecord::Migration[5.1]
def change
create_table :users do |t|
t.string :username, null: false
t.string :email, null: true
t.integer :language_id, null: false
t.integer :permission_ids, array: true, default: []
t.string :password_digest, null: false
t.timestamps
end
add_index :users, :username, unique: true
end
end
控制器中的用户params方法。
def user_params
params.require(:user).permit(:username,
:email,
:language_id,
:password,
:password_confirmation,
permission_ids: [])
end
如何接收参数
Parameters: {"user"=>{"username"=>"someusername", "email"=>"someemail@question.com", "language_id"=>"2", "permission_ids"=>{"0"=>"1", "1"=>"2", "2"=>"3", "3"=>"4", "4"=>"5", "5"=>"6", "6"=>"7", "7"=>"8", "8"=>"9", "9"=>"10", "10"=>"11", "11"=>"12"}}}
顺便说一句,我正在使用Axios从Vue发布。
答案 0 :(得分:0)
您还可以使用提交此数据的html表单更新问题。问题也可以是形式。
当您希望表单将条目提交为数组时,表单属性应为
user['permission_ids'][]
通过这种方式,html表单将理解html表单中对permission_ids
的输入将提交一个数组。
答案 1 :(得分:0)
我设法获取ID数组的方式:
def user_params
params[:user][:permission_ids] = (params.dig(:user, :permission_ids) || {}).values
params.require(:user).permit(:username,
:email,
:language_id,
:password,
:password_confirmation,
permission_ids: [])
end