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

前端之家收集整理的这篇文章主要介绍了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相关文章