Js-routes在url中添加(::format)
js-routes adding (::format) to urls
我有一个简单的rails项目,我一直在用reactjs玩。为了添加一些基本的导航,我引入了js-routes库,它可以很好地处理带有路径参数的url,例如"localhost:3000/addresses/1"。
我面临的问题是我试图调用一个"新"资源方法,它将(::format)字面上添加到url,当然,localhost:3000/addresses/new(.:format)是一个无效的路径。
我引用了在routes-js文档中指定的"new_address_path"路径。这个url的rake输出如下:
new_address_path GET /addresses/new(.:format) addresses#new
使用上述路径的HTML片段如下:
<a href={Routes.new_address_path}>Create am address</a>
ENV:
-Ruby: 2.2.4
-Rails: 4.2.6
-js-routes: 1.2.8
问题路由:
resources :addresses
我在这里错过了什么?它似乎没有正确地解释rails路由文件
我不确定我是否明白你的问题。如果你想用格式后缀生成url,你可以在helper方法中使用format
选项。例如:
Routes.new_address_path(format: 'js')
将生成如下内容:
/addresses/new.js
对不起,我以为我把我的解决方案贴在这里了。
问题不是js-routes,而是我的AJAX调用,我将内容类型设置为JSON,我假设它正在使用内置方法将我的对象转换为JSON。这不是真的,你需要通过JSON.stringify(obj)手动将对象转换为JSON。
旧ajax调用:
....
url: Routes.feedback_path(),
dataType: 'json',
contentType: 'application/json',
type: 'POST',
data: obj,
....
新的ajax调用:
....
url: Routes.feedback_path(),
dataType: 'json',
contentType: 'application/json',
type: 'POST',
data: JSON.stringify(obj),
....
您可能已经找到了解决方案,但您的原始问题是与js-routes
有关,或者更确切地说,是您对它的使用。
要从js-routes获得正确的输出,你必须提供父节点。
原标题:Routes.new_address_path
修复:Routes.new_address_path()
正如smefju所发布的,您可以在父级中指定格式,但完全不使用它们是不可能的。
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何在映射数组中添加换行符
- 正在将数据主题添加到所有项目
- ZeroClipboard-在复制之前添加到值
- 我可以在json对象中添加一个函数吗
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 正在SharePoint 2013母版页中添加JQuery移动文件
- 如何添加浮动和非浮动,其他
- 添加文字和评论功能更新Div
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- 在函数中添加数组元素的数值
- 如何将歌曲添加到jPlayer
- 在html Select中添加搜索
- Java脚本时间添加
- FabricJs-限制主对象内添加对象的移动区域
- JQuery添加元素需要在我的js之前再次添加JQuery脚本
- 如何在Google柱状图中动态添加行/列
- 正在尝试使用if和else添加类,但无法正常工作
- Js-routes在url中添加(::format)