javascript – SpineJS url()可以支持Rails中的嵌套资源吗?

发布时间:2019-12-03 整理:脚本之家
脚本之家收集整理的这篇文章主要介绍了javascript – SpineJS url()可以支持Rails中的嵌套资源吗?脚本之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随脚本之家小编过来看看吧!
Rails有一段时间的嵌套资源,它已被大量使用(或过度使用).假设我们有两个模型,文章和评论.
class Article < ActiveRecord::Base
  has_many :comments
end

class Comment < ActiveRecord::Base
  belongs_to :article
end

在routes.rb中定义嵌套资源

resources :articles do
  resources :comments
end

现在,我们可以按特定文章列出评论:
http://localhost:3000/articles/1/comments

但Spine只能为帖子请求制作网址,以便像这样创建文章和评论:

/articles
/comments

如何为这个Ajax请求制作Spine的url?

/articles/1/comments

我知道我可以在Comment Model中覆盖url()以获取检索注释,但是创建新记录呢?

我也查看了源代码,我发现Spine的Ajax模块中的create()方法并不关心Comment实例中的自定义url()函数.我想要的只是传递article_id并将其与我的自定义url()函数一起使用来生成url,然后我可以发布到服务器进行创建.

没有叉子和Spine的修改版本我自己可以吗?

顺便说一句:对不起我的英文,希望你们所有人都能理解我想说的话:-)

感谢你并致以真诚的问候,

解决方法

模型的url属性可以是值或函数.所以你可以这样做:
class Comment extends Spine.Model
  @configure "comment","article_id"
  @extend Spine.Model.Ajax

  @url: ->
    "articles/#{article_id}/comments"

或类似的东西. ajax模块将评估此属性,并在构建请求时将其用作资源端点.

总结

以上是脚本之家为你收集整理的javascript – SpineJS url()可以支持Rails中的嵌套资源吗?全部内容,希望文章能够帮你解决javascript – SpineJS url()可以支持Rails中的嵌套资源吗?所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

脚本之家官方公众号

微信公众号搜索 “ 程序精选 ” ,选择关注!

微信公众号搜索 “ 程序精选 ” ,选择关注!
精选程序员所需精品干货内容!

脚本之家官方公众号

微信公众号搜索 “ 程序精选 ” ,选择关注!

微信公众号搜索 “ 程序精选 ”
精选程序员所需精品干货内容!