RubyonRails ajax发布失败
Ruby on Rails ajax post failed
以下是我的javascript,用户在其中发布更新:
$('.attachments-container').on('click', '.cover-attachment', function(event) {
var attachment_id = $(this).parent().find('input[name="product_attachment[id][]"]').val();
$.ajax({
type: "POST",
url: "/products/update_cover",
dataType: "json",
data: attachment_id,
complete: function(){
console.log('change completed');
}
});
event.preventDefault();
})
在我的路线上:
resources :products do
member do
match "update_cover", via: [:post]
post "update_cover" => 'products#update_cover'
end
end
在我的控制器上:
class ProductsController < ApplicationController
skip_before_action :authenticate_user!, only: [:result, :show]
def update_cover
@attachment_id = params[:attachment_id]
render :json => {:status => 'success'}.to_json
end
end
我不知道这个错误是从哪里来的:ActionController::RoutingError (No route matches [POST] "/products/update_cover"):
谢谢!!
如果您在终端中运行rake路由,您将看到您没有products/update_cover的路由。您有-products/:id/update_cover。由于您已将其定义为成员路由,因此需要将parent_id作为路由的一部分进行传递。试试这个
url: "/products/" + attachment_id + "update_cover",
并且您不需要在数据哈希中传递attachment_id。
顺便说一句,你发布的两条路线基本上都是一样的。你可能会失去
match "update_cover", via: [:post]
相关文章:
- 当json解析空响应时,Whatwg-Fetch失败,我该如何防止它
- JsFiddle在分叉后描述失败
- 为什么不'当单元测试出现解析错误时,我的因果报应测试会失败
- 当一些承诺失败时,如何继续使用$q.all()
- 失败:等待Protractor与页面同步时出错:“”;在窗口上找不到角度”;
- 在Jquery中单击传播失败
- 网页上失败的javascript会导致所有其他脚本失败
- 带有对象解析的响应javascript ajax失败
- 一台特定计算机的Ajax请求数据未定义/失败
- Nodejs服务器:加载资源失败:服务器的响应状态为404(未找到)
- jQuery.getJSON失败,语法错误
- ng disabled在放入多个表达式时失败
- Jasmine单元测试在监视服务方法时失败
- jQuery分页下一页和上一页按钮在点击零或超过最后一页后失败
- 在iframe的情况下,jQuery html()将失败
- 在我的情况下,使用带有变量失败的 jquery 选择器
- CSS中的转换似乎失败了,原因是什么
- 在数组中插入对象失败
- Backbone fetch中的Ajax在fetch调用退出后完成,因此fetch调用中没有成功/失败事件
- JavaScript到.csv的下载失败:;失败.无文件”;