将数据库转换为rails中的解析json

时间:2016-01-10 11:00:57

标签: ruby-on-rails json ajax

所以我有一个充满活动的桌子。我的控制器调用看起来像这样

 @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'

我想拥有它,所以这样的事情是可以实现的

urlcall将是(在ajax中)

`''+ gigjson +'这里的控制器方法?'

这就是我到目前为止的所有代码。在路线中没有任何东西,ajax中的任何东西都只是标准的ajax调用。

1 个答案:

答案 0 :(得分:0)

基本上你需要:

  1. 定义路线;
  2. 从控制器渲染JSON中的数据。
  3. 对于第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替换为您需要的参数。