1

我想这应该很简单,但我无法弄清楚

我认为有一个链接,我想触发一些 ajax:

link_to( "#{sir.sir_id}" , '#', :data => {'sir-id' => sir.id}, remote: true ),

在我的咖啡脚本中,我可以像这样在链接中获取数据属性的值:

$ ->
  $("a[data-sir-id]").click ->
  data_sir_id = $(this).data("sir-id")

所以我需要控制器中该变量(data_sir_id)的值,这样我就可以获取其关联的模型对象并将它们呈现在同一个视图中

我怎么能做到这一点?

4

2 回答 2

1

您无需将数据存储在数据属性中并在单击链接时进行 ajax 调用:link_to为您提供了一种创建链接和传递参数的好方法。

并且通过使用,remote: true它将执行一个 ajax 调用而无需任何其他配置。

link_to("#{sir.sir_id}", path_to_the_controller_action(sir_id: sir.id), remote: true)

然后,在您的控制器操作中,您的数据将可以在params[:sir_id]

于 2013-10-27T09:35:36.717 回答
1

在这里,link_to您已将 url 作为传递'#',因此,如果您有可以添加的特定操作,则可以通过上述方式

否则,您可以使用以下内容:

要在视图中指定链接,您可以将其用作

link_to "#{sir.sir_id}", '#', remote: true, 'sir-id' => sir.id, class: 'sir_id_link'

在咖啡脚本中:

$ ->
  $("sir_id_link").live "click", ->
  data_sir_id = $(@).attr("sir-id")
  $.ajax
    url: any_url
    type: "PUT"
    data:
      sir_id: data_sir_id
    success: (data) ->
      ...

现在在您的控制器操作中,您可以将其作为 params[:sir_id] 访问。

希望这会对你有所帮助。

谢谢。

于 2013-10-27T12:36:42.523 回答