0

我有一个模型“播放器”,在加载主页时,它会显示随机播放器的图片。单击时,它会将该播放器上的字段 (num_clicks) 增加 1。

现在我有:

  • 监听图片点击事件的jQuery
  • 它在 static_pages_controller#player_clicked 向服务器发出 AJAX 请求,发送存储在 DOM 中的玩家 ID
  • 控制器更新玩家的字段,并将新值(通过 JSON)发送回 AJAX 请求的成功回调
  • 然后成功回调使用 jQuery 将新值插入 DOM

此功能的所有 jQuery 都在 中/home.js.coffee,这是放置这个的正确位置吗?

我应该在图片中使用link_to而不是在图片上使用点击侦听器吗?

页面(加载时)显示@player.num_clicks,所以如果这个home数字会自动更新而不是用服务器提供的新值覆盖它(在AJAX成功回调中)会很好。这可能吗?

现在,我所做的基本上是在工作,但我相当有信心这不是“rails 方式”,我想解决这个问题。谢谢!

4

1 回答 1

1

是的,使用带有图片的 link_to 并进行此更改。rails 方式将使用带有 remote => true 的 link_to

<%=link_to ...., :remote => true%>

并在 controller#action 上编写一个 js erb 模板,例如 app/views/static_pages/player_clicked.js.erb,它将包含您在成功回调中编写的所有 javascript。

无论如何,您都必须从服务器获取更新的点击次数。

希望这会有所帮助。

于 2013-10-01T23:58:31.547 回答