所以我有一个数据表(用于创建漂亮表格的javascript库)的视图,就像在this RailsCast中一样生成 简而言之,数据表是在服务器端创建的,而新类创建了一个在视图中呈现的json响应
因此,在我生成的视图中,我有一个链接,我想在单击时触发ajax事件并具有数据属性,
link_to( "#{sir.sir_id}" , '#', :data => {'sir-id' => sir.id}, remote: true )
我以这种方式获取coffeescript中该数据属性的值:
$("a[data-sir-id]").click ->
data_sir_id = $(this).data("sir-id")
工作正常
我想在我的控制器中提供该值(sir-id),以便我可以获取相关的模型对象并通过ajax在同一视图中显示它们,它将填充另一个数据表的内容(这个不需要服务器端处理)
如何使用ajax源创建和提供这个新数据表?
如果我设法在我的控制器中使用sir_id但是视图在第一次创建时已经渲染了json,我想我可以将其他一些json对象返回给视图。
答案 0 :(得分:1)
您可以使用post方法将数据发送到控制器。
$("a[data-sir-id]").click ->
data_sir_id = $(this).data("sir-id")
$.ajax
type: 'POST'
url: '/some-path'
data: {sir_id: data_sir_id}
success: console.log('success posting sir-id')
dataType: 'json'
#config/routes.rb
Rails.application.routes.draw do
post "/some-path", to: "some_controller#some_view"
end
#app/controllers/some_controller.rb
class SomeController < ApplicationController
def some_view
SomeModel.find_by_sir_id(params[:sir_id])
end
end
我想说的是,如果你可以用&#34;#{sir.sir_id}&#34;形成一个link_to。在你的视图文件中,在我看来,你的控制器中已经可以使用sir_id了,你不需要使用ajax。不过,我希望这个ajax解决方案正是你所寻求的:)