【问题标题】:How to display json format in rails retrieving data from postgresql?如何在从 postgresql 检索数据的 Rails 中显示 json 格式?
【发布时间】:2023-04-04 20:23:01
【问题描述】:

我是新手,正在学习基础知识,但突然间我必须在 中使用 rails 显示来自 postgresql 的所有数据json 格式,部署到 heroku

我的目标是在连接到数据库之前将 vb.net 连接到 rails。 请帮我。我是这个领域的新手。

截至目前,我尝试在 localhost 中运行我的代码,试图以 json 格式将数据从 sqlite 显示到 localhost:3000/employees

我的员工控制器

中有此代码
class EmployeesController < ApplicationController

 respond_to :json
 def index
   @employees = Employee.all
   respond_with(@employees) do |format|
   format.json { render :json => @employees.to_json(:only => [:fname, :mname, :lname]) }
  end
 end

 def show
   @employee = Employee.find(params[:id])
 end

 def new
   @employee = Employee.new
 end

 def create
   @employee = Employee.new(employee_params)

   @employee.save
   redirect_to @employee
 end

 private
 def employee_params
   params.require(:employee).permit(:fname, :mname, :lname)
 end
end

这是我在 app/views/employees/index

中的代码
  <% @employees.each do |employee| %>
  <tr>
    <td><%= employee.fname %></td>
    <td></td><td></td>
    <td><%= employee.mname %></td>
    <td></td><td></td>
    <td><%= employee.lname %></td>
  </tr>

这是在我的 gemfile

source 'http://rubygems.org'

gem 'rails', '4.1.8'
gem 'sass-rails', '~> 4.0.3'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0',          group: :doc
gem 'tzinfo-data', platforms: [:mingw, :mswin]

group :development, :test do
  gem 'sqlite3'
  gem 'byebug',      '3.4.0'
  #gem 'web-console', '2.0.0.beta3'
  gem 'spring',      '1.1.3'
end

group :test do
  gem 'minitest-reporters', '1.0.5'
  gem 'mini_backtrace',     '0.1.3'
  gem 'guard-minitest',     '2.3.1'
end

group :production do
  gem 'pg',             '0.17.1'
  gem 'rails_12factor', '0.0.2'
end

当我运行程序时,我收到此错误消息 EmployeesController#index 中的 ActionController::UnknownFormat

提取的源代码(第 9 行附近):

def index
  @employees = Employee.all
  respond_with(@employees) do |format|
    format.json { render :json => @employees.to_json(:only => [:fname, :mname, :lname]) }
  end
end

特别是这部分:respond_with(@employees) do |format| app/controllers/employees_controller.rb:9:in `index'

【问题讨论】:

    标签: ruby-on-rails json postgresql heroku format


    【解决方案1】:

    我正在使用Rabl 生成JSON。它易于使用且高度可重复使用。我认为从好的工具开始是好的。它将使您的代码更简洁,更易于维护。

    你可以有这样的东西:

    #EmployeesController
    def index
       @employees = Employee.all
       respond_with(@employees) do |format|
       format.json { render template: "api/employees/index"}
      end
    end
    
    #app/views/api/employees/index.json.rabl
    object @employees
    extends 'api/employees/show'
    
    #app/views/api/employees/show.json.rabl
    object @employee
    attributes :fname, :mname, :lname
    

    【讨论】:

      【解决方案2】:

      我刚用过,效果很好

       def index
          render json: @employees = Employee.all
       end
      

      假设 gem 'jbuilder', '~&gt; 2.0' 在 gemfile 中

      【讨论】:

        猜你喜欢
        • 2018-10-07
        • 1970-01-01
        • 1970-01-01
        • 2017-04-11
        • 1970-01-01
        • 1970-01-01
        • 2017-02-07
        • 2015-07-27
        • 1970-01-01
        相关资源
        最近更新 更多