Ruby on rails 4 Rails 4/Mongoid can';t柱阵列
这是我的mongoid医生:Ruby on rails 4 Rails 4/Mongoid can';t柱阵列,ruby-on-rails-4,mongoid,Ruby On Rails 4,Mongoid,这是我的mongoid医生: { _id: ObjectId("52eec35e6b65762732000000"), draftees: [ "52e93c266b657641d5000000", "52e96a676b6576431d010000", "tom" ], user_id: "52eac4d16b657603d8010000" } 当我尝试通过ajax进行更新时: $.ajax({ type: "POST", url: "/dra
{
_id: ObjectId("52eec35e6b65762732000000"),
draftees: [
"52e93c266b657641d5000000",
"52e96a676b6576431d010000",
"tom"
],
user_id: "52eac4d16b657603d8010000"
}
当我尝试通过ajax进行更新时:
$.ajax({
type: "POST",
url: "/draft_lists",
data: {"draft_list":{
"draftees":["bill", "bob", "zeak"]}
},
success: function(){
alert('success!');
},
error: function(){
alert('error!');
}
})
这没用
我一直在努力研究如何格式化draftees数组,以便它能够更新数据库,但没有用。我做错了什么
注意:Ajax请求是通过firebug控制台发出的。当我的绘图员模型类型是“字符串”,而不是“数组”时,它就工作了……所以我知道ajax请求正在工作。
控制器:
def index
@players = Player.all
@draft_lists = DraftList.where(user_id: current_user._id)
end
def create
#If user's draft doesn't exist, create their draft. If it does, update to their preference, based on current_user._id
draft_list = DraftList.find_or_initialize_by(user_id: current_user._id)
draft_list.update(draft_list_params)
respond_to do |format|
if @draft_list.save
format.html { redirect_to @draft_list, notice: 'Draft list was successfully created.' }
format.json { render action: 'show', status: :created, location: @draft_list }
else
format.html { render action: 'new' }
format.json { render json: @draft_list.errors, status: :unprocessable_entity }
end
end
end
事实证明,Rails 4中的强参数存在问题。我需要允许:
def draft_list_params
params.require(:draft_list).permit(:user_id, :draftees => [])
end
让我们看看处理请求的控制器如何?
draft\u list\u params
初始化?您的请求是否会产生任何错误?一个500错误,但它(在数组之前,使用字符串)将起作用。