1

私のバックボーン ビューでは、次のようなコレクションで fetch を呼び出しています。

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

これは、レール ルートで 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 バックエンドには単純なコントローラーがあります。ここに spot_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 を呼び出すと、いくつかの検索用語に基づいてすべてのスポット レコードを取得するように指示できます。spot#index アクションへの呼び出しにいくつかのデータ パラメーターを追加するだけでよいことはわかっていますが、index アクションでそれらの用語を見つけますが、spot#search からレコードを取得するように fetch に指示する方がよいようです。これを行う最善の方法は何ですか?ありがとう!

4

0 に答える 0