将对象数组从JS传递到Rails控制器以进行创建,可以通过以下步骤实现:
var users = [
{ name: "John", age: 25 },
{ name: "Jane", age: 30 },
// ...
];
$.ajax({
url: '/users', // Rails控制器的路由
method: 'POST',
data: JSON.stringify({ users: users }), // 将数组转换为JSON格式
contentType: 'application/json',
success: function(response) {
console.log(response);
// 处理成功响应
},
error: function(error) {
console.log(error);
// 处理错误响应
}
});
class UsersController < ApplicationController
def create
users_params = params.require(:users).permit(:name, :age) # 根据对象属性定义Strong Parameters
users = users_params.map { |user_params| User.new(user_params) } # 创建用户对象
if users.all?(&:valid?) # 检查所有用户对象是否有效
users.each(&:save) # 保存用户对象
render json: { message: 'Users created successfully' }, status: :created
else
render json: { error: 'Invalid user data' }, status: :unprocessable_entity
end
end
end
在上述示例中,我们首先使用Strong Parameters来接收传递的数据,并创建用户对象。然后,我们检查所有用户对象是否有效,如果有效,则保存用户对象并返回成功响应。如果存在无效的用户数据,则返回错误响应。
领取专属 10元无门槛券
手把手带您无忧上云