将Rails模型保存为JSON

时间:2013-02-19 03:56:58

标签: ruby-on-rails ruby-on-rails-3 json controller angularjs

这似乎是一个已经被问过的问题,但我找不到我想要的东西,所以我会继续问问。

我正在尝试使用angular.js在我的网站上制作即时搜索功能。我希望用户能够即时搜索帖子(通过标题和内容,理想情况),所以在听到angular's ability to do this后,我试了一下。

我在posts.js.coffee文件中进行了此操作:

@PostListCtrl = ($scope, $http) ->
  $http.get("posts.json").success (data) ->
    $scope.posts = data

这是在它引用的JSON doc中进行的(只是为了确保它正在工作 - 它是什么)。

data =
    [
    name: "Blog ex"
    content: "This is my example post."
    ,
    name: "Test posting"
    content: "A different ex post"
    ,
    name: "Test3"
    content: "This has some unusual, unique vocabulary."
    ]

现在我要做的就是每次创建一个新Post时让Rails在上面的JSON文件中保存一个对象(带有名称/内容属性),这样搜索实际上会运行有意义的数据。我是Rails / JSON /计算机的新手,并不知道如何做到这一点。我猜它在帖子控制器中,可能在其中一个respond_to块中,但如果有人能指出我正确的方法来做到这一点,我会很感激。

1 个答案:

答案 0 :(得分:1)

如果你想要的只是即时搜索或自动完成功能,你不应该使用Angular.js或任何其他JS MVC框架。相反,考虑使用jQuery作为@charliefl建议,这很容易。一个简单的Ajax调用就可以了。

JS MVC框架很重,您需要从底部设计架构以适应它们。不值得这样的单一功能。

为了使这个功能在jQuery中工作,基本上是:

  1. 在搜索框中收听事件,说出输入一个或多个字符
  2. 抓住字符并使用jQuery Ajax向Rails中的PostsController中的方法发送POST请求,比如说“search”
  3. 使此方法响应JSON。
  4. 根据服务器响应更新DOM。