微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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模块将评估此属性,并在构建请求时将其用作资源端点.

原文地址:https://www.jb51.cc/js/158066.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐