我有以下操作来创建记录:
def create
@categorization = Categorization.new(categorization_params)
@categorization.save
respond_to do |format|
format.json { render json: {categorization: @categorization.to_json}, success: 200 }
end
end
private
def categorization_params
params.require(:categorization).permit(:user_id, :category_id)
end
这是我的jquery ajax代码:
$("#save-category").click(function(){
var category_id = $('#categorization_category_id').val();
var category_name = $('#categorization_category_id option:selected').text();
var user_id = "#{current_user.id}";
var cat_id;
$.ajax({
url: "#{dashboard_categorizations_path}",
type: 'POST',
dataType : 'json',
data: {'user_id': user_id, 'category_id': category_id},
success: function(result) {
console.log(result);
// cat_id = JSON.parse(result.id);
// alert(cat_id);
},
error: function(result) {
console.log(result);
// cat_id = JSON.parse(result.id);
// alert(cat_id);
}
}); // end ajax call
$("#categoriamensaje").show();
var leadMessage = setInterval(function(){
$("#categoriamensaje").hide();
}, 3000);
});
这是我的检查员给我看的:
正如你所看到的,点击按钮后我会回复状态400,状态为200的回答:
第一个给我以下回应:
ActionController :: ParameterMissing at / dashboard / categorizations
param丢失或值为空:分类
app / controllers / dashboard / categorizations_controller.rb,第30行
```ruby 25 redirect_to edit_dashboard_home_path(current_user.id)26结束27 28 私人29 def classification_params
30 params.require(:categorization).permit(:user_id,:category_id)31 end 32 end
```
和第二个:
categorization:"{"id":60,"user_id":1,"category_id":7,"created_at":"2015-04-15T14:27:55.039Z","updated_at":"2015-04-15T14:27:55.039Z"}"
记录已创建,但我需要捕获ajax响应才能在视图中显示信息。
请帮忙。
答案 0 :(得分:0)
看起来你需要将你发布的JSON有效负载包装在这样的categorization
对象中:
{ "categorization": { "user_id" : "1", "category_id" : "1" } }
所以你的JQuery代码应该是这样的:
data: { 'categorization' : { 'user_id': user_id, 'category_id': category_id} }