所以我有一个充满活动的桌子。我的控制器调用看起来像这样
@gig = Gigtable.where(eventurl: (params[:gigurl])).all
@gigjson = @gig.to_json
我不确定我是否正确地做到了这一点。我有一个ajax电话。我想要json(它应该是它自己的{}
集合中的每一行,只有当eventid
有来自event table
的{{1}}的url时才希望被引入ajax控制器gigurl(它尚未通过。我不知道该怎么做)。
@gigjson
将所有数据库作为json传回(使用byebug检查)。
基本上我需要将gigurl从视图传递给控制器。 (其他一切都以这种方式工作。我的另一个表具有传递到像这样的ajax的URL的id
'' + link + 'data'
我想拥有它,所以这样的事情是可以实现的
`''+ gigjson +'这里的控制器方法?'
这就是我到目前为止的所有代码。在路线中没有任何东西,ajax中的任何东西都只是标准的ajax调用。
答案 0 :(得分:0)
基本上你需要:
对于第1步,假设您的AJAX调用使用GET,您可以将其添加到routes.rb
文件中:
get 'gigjson/:gigurl', to: 'your_controller#your_action', defaults: { format: 'json' }
我已将JSON定义为默认格式,以简化操作,因此您无需更改JS调用。对于步骤2,在控制器中,您可以按如下方式重写您的操作(我删除了非实用的实例变量):
render :json, Gigtable.where(eventurl: (params[:gigurl]))
您不需要添加.all
,您已经指定了where
条款。
此时,您可以使用网址http://your_server.com/gigjson/GIGURL
,将GIGURL
替换为您需要的参数。