ruby-on-rails - 使用 Rails API 和 JSON 创建用户?

标签 ruby-on-rails json api ruby-on-rails-4

所以我在 Rails 中测试了一个非常简单的 API,看看我是否可以使用 Chrome 插件 Postman(REST 客户端扩展)在本地创建用户。

在我的 rails 应用程序中,我为我的 API 设置了一个文件夹/命名空间,每当我尝试创建我的用户时,我都会收到以下错误:
缺少模板 api/v1/users/create, application/create with {:locale=>[:en], :formats=>[:json], :handlers=>[:erb, :builder, :raw, :ruby, :jbuilder, :coffee]}。搜索:*“PATH/app/views”

我正在使用 Rails 4.0.1 和 Ruby 2.0

我在下面发布了我发布的内容的屏幕截图:

Screenshot 1

module Api
     module V1
    class UsersController < ApplicationController
        class User < ::User
            # add any hacks
        end

        respond_to :json

        def index
            respond_with User.all
        end

        def show
            respond_with User.find(params[:id])
        end

        def new
            @user = User.new
        end

        def create
            @user = User.create(user_params)
            # respond_with(@user)

            if @user.save
                # render json: @user, status: :created, location: @user
                redirect_to @user
            end
        end

        private

            def user_params
              params.require(:user).permit(:name, :age, :location) if params[:user]
            end
    end
  end
end

所以根据我的 user_params,我应该能够创建一个新用户,对吗?
如果您需要任何其他信息,请告诉我,我会尽快回复!
谢谢!

最佳答案

您可以使用 API 创建用户。

1)首先,您需要在您的 routes.rb 中放置适当的资源:

YourApp::Application.routes.draw do
  namespace :api do
    namespace :v1 do
     resources :users
    end
    namespace :v2 do
    # ... if needed
    end
  end

  root to: 'users#index'
end

2)您需要创建一个 RESTfull 样式的 Controller 来处理请求。在这里,您的“创建”操作如何实现。
def create
  respond_with User.create(fio: params[:fio], phone: params[:phone], region: params[:region], updated_at: Time.now)
end

使用 respond_to 的“创建”示例:
def create
    # ...
    respond_to do |format|
      format.html {render text: "Your data was sucessfully loaded. Thanks"}
      format.json { 
                   User.create(... params ...)
                   render text: User.last.to_json  # !
                  }
    end
  end

请参阅有关 respond_with 的文档和 respond_to如果你需要一些特别的东西来回应。

也可以是有关 API 构建的有用 railscasts 剧集:#350#352

附言文件夹/命名空间/v1/ users_controller 应与模块 Api 中的类名相同

P.S.2 你可以观察我的应用程序,在那里你可能会发现一些有用的东西(与你的应用程序相同 - 用于记录创建的简单 API) - myApp

users_controller 示例(controllers/api/v1/users_controller.rb):
#encoding: utf-8

    module Api
      module V1
        class UsersController < ApplicationController # Api::BaseController
          before_filter :authenticate_user!, except: [:create, :index]

          respond_to :json

          def index
        #respond_with

            respond_to do |format|
              format.html {render text: "Your data was sucessfully loaded. Thanks"}
              format.json { render text: User.last.to_json }
            end
          end

          def show
            respond_with User.find(params[:id])
          end

          def create
            respond_with User.create(access_token: params[:access_token], city: params[:city], created_at: Time.now, phone: params[:phone], region: params[:region], updated_at: Time.now)
          end

          def update
            respond_with User.update(params[:id], params[:users])
          end

          def destroy
            respond_with User.destroy(params[:id])
          end
        end
      end
    end

关于ruby-on-rails - 使用 Rails API 和 JSON 创建用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20320913/

相关文章:

ruby-on-rails - Rails 根资源 JSON

ruby-on-rails - 语法错误意外的keyword_ensure,期望keyword_end

c# - 查找 JSON 条目并添加嵌套元素

ruby-on-rails - 未定义的方法错误单击简单的 webscraper

javascript - 将 JS 对象转换为 JSON 字符串

jquery - ajax 和 asp.net-mvc - 我应该使用 PartialView 还是 Json?

android - 如何获取 Android 上具有日历的帐户列表?

java - "rundll32 dsquery,OpenQueryWindow"返回什么?

c# - 有没有一种简单的方法可以使用 Office 365 API 来验证 WPF 桌面应用程序?

ruby-on-rails - Debian 7 和 Ubuntu 上最新版本的 sphinxsearch