【问题标题】:Using JSON in a Rails 4.2 App在 Rails 4.2 应用程序中使用 JSON
【发布时间】:2015-06-21 00:11:09
【问题描述】:

我使用 Canvas 创建了一个布局设计器。它通过 JSON 文件进行配置(例如,要使用的背景、允许的字体、颜色等)。我试图弄清楚如何将它绑定到 Rails 应用程序中。我不确定在哪里寻找信息。我找到的资源并没有为我指明一个好的方向。 我需要一些关于以下方面的一般指示:

1) 假设我有一个产品页面设置。我如何将 JSON 配置信息从我的模型发送到 JS 应用程序?

2) 我如何将修改后的 JSON 文件从我的 js 应用程序发送回以保存在数据库中?

3) 我需要为此设置 JSON API 吗?这是我需要寻找的吗?

感谢任何指针/链接。

谢谢,

狮子座

【问题讨论】:

    标签: javascript ruby-on-rails json


    【解决方案1】:
    1. 您可以在 Rails 控制器中使用以下命令将 JSON 发送到您的 js:

      result = xyz.select(:id, :xyz_name).all
      render :json => result
      
    2. 您可以将 JSON 原样从 javascript 发送到 rails。 rails 将接收 json 作为 params[:key]

    3. 内置 JSON 支持,无需任何单独设置。

    【讨论】:

      【解决方案2】:

      是的,听起来您需要设置一个 JSON api。有很多方法可以做到,但我最喜欢的方法是在接受 json 请求并返回 json 的 url 中有一个命名空间的“api”。方法如下:

      在您的控制器中创建一个名为“api”的文件夹 在这个文件夹中创建一个名为 'api_controller.rb' 的控制器 把它放在那个控制器中:

      class Api::ApiController < ApplicationController
        skip_before_filter :verify_authenticity_token
        #before_filter :set_headers # may need to set headers as listed below
        #before_filter :authenticate_apiKey # if you want to authenticate the user, use an authentication token
        respond_to :json
      
        def set_headers
          # Please look up what each of these headers do before adding them.
          # headers['Access-Control-Allow-Origin'] = *
          # headers['Access-Control-Expose-Headers'] = 'ETag'
          # headers['Access-Control-Allow-Methods'] = 'GET, POST, PATCH, DELETE, OPTIONS, HEAD'
          # headers['Access-Control-Allow-Headers'] = '*,Content-Type'
          # headers['Access-Control-Max-Age'] = '86400'
        end
      end
      

      然后,无论您在 api 文件夹中创建什么控制器,都让它从 Api::ApiController 继承,而不是像往常一样从 ApplicationController 继承。

      在你的控制器动作中,你可以使用'render json: @object'

      只需确保在您的模型中创建一个 serialiazable_hash 或 to_json 方法即可。

      您还需要像这样更新您的路线文件:

      namespace :api, defaults: { :format => :json } do 
        # put your routes here
      end
      

      【讨论】:

      • 谢谢,我想这会奏效。现在,我知道要寻找什么了:-)
      • 找到这本书 APIS on Rails 看起来它会回答我所有的问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-24
      • 1970-01-01
      • 1970-01-01
      • 2015-06-12
      • 1970-01-01
      • 2016-02-28
      • 2017-05-27
      相关资源
      最近更新 更多