如何将参数传递给javascript ajax POST,以便Rails解释它们
How to pass parameters to a javascript ajax POST so that Rails will interpret them?
在 Rails 3.2 应用程序中,我有一个 coffeescript 函数,其中包含一个 POST 来创建带有附加文件的资产(使用 Carrierwave)
link = url_to_file
parent = $('#dom_obj').data('id')
$.post( url, { remote_file_url: link, parent_id: parent } )
这将给出以下日志:
Started POST "/assets" for 127.0.0.1 at 2013-10-05 14:53:57 +0700
Processing by AssetsController#create as JS
Parameters: {"remote_file_url"=>"https://the/correct/path", "parent_id"=>"520"}
在控制器中
@asset = Asset.new(params[:asset])
@asset.save
我还有其他一些创建资产的方法,它们都可以正常工作。传递给此 ajax 调用的变量也是正确的。但是@asset.save由于上传器中的错误而失败,这意味着parent_id设置不正确。
由于此组件的所有组件都可以通过其他上传途径完美运行,因此我唯一的结论是jquery ajax调用不正确,并且我想我没有正确设置参数(控制器中的params[:asset]会正确解释上面记录的参数吗?
如何将参数传递给javascript帖子,以便Rails正确解释它们?任何指导都非常感谢,因为我在兜圈子!
从您提供的日志来看,您的 POST 调用没有提供称为 params[:asset] 的东西。因此,有效的方法是在您的控制器中执行此操作
@asset = Asset.new(params)
@asset.save
或者如果这不起作用,您可以尝试
@asset = Asset.new(:remote_file_url => params[:remote_file_url], :parent_id => params[:parent_id])
@asset.save
或者另一种解决方案是不更改控制器,而是将 HTML 中的表单输入名称更改为 asset[remote_file_url]
和 asset[parent_id]
相关文章:
- 从Rally获取一个特定的标记,以便计算另一个字段中的值
- 如何从rails中的代码中删除新行( )
- Rails File_field最大堆栈大小
- angularjs+rails应用程序中未显示模板
- Rails/JSON:如何将JSON用于jquery UI自动完成表单
- 从HTTPGET返回一个自定义对象列表,以便在Angular 2应用程序中使用
- Rails 3.2 js.erb文件转义js
- Rails-JQueryUIAutcomplete和AJAX不工作,可以't连接到数据库
- Jquery:代码在rails中的页面加载时未执行
- Rails操作只调用一次,但我在ajax中每秒钟都调用一次
- Rails/Javascript链接到用于切换多个元素的函数
- 在Rails中更新Div,而不更改更新请求后的视图
- Jquery append oly获取循环Rails中的最后一个elemen
- 有效地从Ruby on Rails中的连接表中绘制值,以便在javascript中使用
- 如何将计算值绑定到 Angular 中的 ng-model 字段.js以便我可以使用 Ruby on Rails 将完整
- 如何将参数传递给javascript ajax POST,以便Rails解释它们
- RequireJS - 打包与主干相关的模块,以便在其他 Rails/JS 应用程序中重用
- Ruby on Rails - 如何将换行符输入文本区域,以便在显示内容时,换行符也在那里
- 将javascript文件放在何处,以便将其与Rails中的特定视图文件夹相关联
- 获得bootstrap typeahead功能,以便在rails中处理数据库查询