私のバックボーン ビューでは、次のようなコレクションで 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 に指示する方がよいようです。これを行う最善の方法は何ですか?ありがとう!