在我的主干视图中,我在这样的集合上调用 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 获取记录似乎会更好。做这个的最好方式是什么?谢谢!