1

在我的主干视图中,我在这样的集合上调用 fetch:

@collection.fetch
      data: 
        query: query
      success: (collection, response) =>
        #do stuff

如果我只想在我的 rails 路线中调用 spot#index,这非常有用。但我想在我的 spot_controller.rb 中设置一个“搜索”路由,它返回一组不同的结果。我该如何设置。

这是我的模型和收藏:

class App.Models.Spot extends Backbone.Model

  initialize: -> 

  url: ->
    if @isNew()
      "#{App.getURL()}/spots.json"
    else
      "#{App.getURL()}/spots/#{@id}.json"

  urlRoot: ->
    App.getURL() + "/spots.json"

class App.Collections.SpotsCollection extends Backbone.Collection
  model: App.Models.Spot

  initialize: (models, options) ->

  url: ->
    "#{App.getURL()}/spots.json"

这是一个地点的路由器:

class App.Routers.SpotsRouter extends Backbone.Router
  routes:
    '' : 'index'

  initialize: ->
    @collection = new App.Collections.SpotsCollection()
    @collection.fetch()

  index: ->

在我的rails后端我有一个简单的控制器,这里是spots_controller.rb

class SpotsController < ApplicationController

  def index

    @spots = Spot.all

    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @spots }
    end
  end
end

我只是好奇如何添加搜索方法,所以当我调用 fetch 时,我可以告诉它根据一些搜索词获取所有现场记录。我知道我可以在调用我的点#index 操作时添加一些数据参数,然后在索引操作中找到这些术语,但是,告诉 fetch 从点#search 获取记录似乎会更好。做这个的最好方式是什么?谢谢!

4

0 回答 0