Rails バックエンドで backbone.js を使用しています。
私はオブジェクトのコレクションを持っています:
class D3.Collections.ResourceInstances extends Backbone.Collection
url: '/project/'+D3.projectId+'/resource_instances'
resource_instances をユーザーの現在のプロジェクトにスコープしようとしています。私の Rails ビューでは、D3 に projectId を設定しています。
<%= javascript_tag do %>
$(document).ready( function() {
D3.projectId = <%= @project.id %>;
});
<% end %>
resources = new D3.Collections.ResourceInstances()
ブラウザコンソールで呼び出すresources.url
と"/project/undefined/resource_instances"
. ただし、'/project/'+D3.projectId+'/resource_instances'
コンソールで評価すると、期待どおりの結果が得られ"/project/37/resource_instances"
ます。ここで何が起こっているのですか?コレクションで projectId が定義されていないのはなぜですか?