新手问题 Rails 表单异步提交

Genvana · 2018年01月30日 · 最后由 Genvana 回复于 2018年01月31日 · 2820 次阅读

刚开始看 ruby,想弄一个表单的异步提交,大概流程就是一个表单负责接收信息,点击提交到一个 action,然后将信息处理之后,作为参数传给另一个隐藏表单,最后由它自动提交到另一处。

第二个表单自动提交开始我用的 onchange 属性,值用@变量传递,但是发现不同的 action 好像通过@变量传值,我在后台另一个 action 中修改了@变量的值,但是 onchange 没有出发,请问具体有什么方法能够实现吗?

之前也看到有人说用 ajax,但是并不了解 ajax 怎么实现

希望能给个思路,或者 api 之类的,谢谢了

form_forremote: true 参数,意思是 Ajax 方式提交表单,那么你对应的 action 返回 SJR 即可 Rails 5 之后推荐 form_with 那么不提供 local: true 即可实现 ajax 方式提交

虽然不是很懂,但还是谢谢了,我再查询下 ajax 相关的东西。请问下,假如有人请求我的一个 action,我怎么获取到 request body 部分呢?

w7938940 回复

那这个 request 对象怎么创建啊,是别人请求我一个 controller 的 action,然后把数据放在 body 里面了,在日志里面看到打印出来的 Parameters:{xxxxxx}这样,但是我不知道怎么能够获得这些参数

Rei 回复

谢谢,东西比较急,之后会重新整理系统学习一下,第一次弄服务端的东西,比较懵。

huacnlee 回复

非常感谢,这就去看😀

w7938940 回复

阅读了一下这个Ruby on Rails 实战圣经才发现在controlleraction中是有request对象的,request.body就可以获得一个 StringIO,之后就什么都好办了。多谢了哈呲牙也记录下,如果 response 的话直传可以render :text / :xml / :json直接响应。

Genvana 回复

Parameters 可以直接用 params 来访问

w7938940 回复

这个是知道的,params[:xxx] 或者 params["xxx"],好像这两个还有点区别,一会去研究下。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号