我有一个 Rails 应用程序,它使用 javascript (Backbone) 在每个用户个人资料页面 /views/users/show.html.erb 上显示用户特定数据。我通过将 <%= @user.id %> 作为数据参数传递给 Backbone 的 fetch 函数来做到这一点,但是,我知道如何将 <%= @user.id %> 放入 Backbone 的 fetch 函数的唯一方法是嵌入每个views/users/show.html.erb 页面中的javascript,因此允许Backbone 为每个views/users/show.html.erb 页面加载不同的用户特定信息。虽然这可行,但它似乎是错误的做法,因为我已经读过我不应该像这样嵌入 javascript。此外,我将不得不做很多事情,因为我希望显示很多不同类型的数据,比你在下面看到的要多。所以 show.html.erb 页面将充满 javascript 以使应用程序按我希望的方式运行。
问题:我如何才能将@user.id 放入 Backbone 的每个用户显示页面的 fetch 函数中,而无需像我所做的那样嵌入 javascript。在评论中,有人建议我使用 app/assets/javascripts/user.js,但我不知道如何将 <%= @user.id %> 放入该文件。@user.id 在 show.html.erb 中很容易获得
<script type='text/javascript'>
$(document).ready(function() {
app.collections.awardCollection.fetch({ data: $.param({ user_id: <%= @user.id %> }) }).complete(function(){
app.views.awardCollection = new app.Views.awardCollection({ collection : app.collections.awardCollection});
app.views.awardCollection.render()
});
});
</script>