2017-07-19 145 views
0

我有一個控制器設置爲處理routes.db中的json請求。我如何測試它是否在rails控制檯中工作?如何測試JSON路由和控制器在rails控制檯

這是我的路線。

post '/requests', to: 'requests#create', :defaults => { :format => 'json' } 

控制器

class RequestsController < ApplicationController 
    respond_to :json 

def create 
if @object.save 
    render json: { success: t(:success_message) }, status: :ok 
else 
    render json: { errors: @object.errors.joins(', ') }, status: :unprocessab$ 
end 

末 結束

回答

1

月做這樣的事情在軌控制檯?

>> app.post "/requests" 

如果你得到那麼對象返回上述保存到一個變量,並查看其內容

希望它能幫助!

+0

有錯誤信息。 [6] pry(main)> app.post「requests」 URI :: InvalidURIError:bad URI(不是URI?): http://www.requests.com:80requests from/usr/local/rvm/rubies/ruby​​- 2.4.1/lib/ruby​​/2.4.0/uri/rfc3986_parser.rb:67:在'split' –

+1

你能否看到你是否需要追加/之前像'/ requests' – uday

+0

處理方式RequestsController#創建作爲JSON 完成500內部服務器錯誤在2ms的 NoMethodError(未定義的方法'保存」的零:NilClass): 應用程序/控制器/ requests_controller.rb:4:在'創建 –

0

我使用高級REST客戶端(ARC)的Chrome插件:https://advancedrestclient.com/

然後就開始你的軌道服務器(rails s),並在你的路線流行到ARC(即localhost:3000/requests)。藉助ARC,您可以選擇GET,POST,PUT等等!你甚至可以在你的文章中添加params,這聽起來就像你需要的那樣。

然後在控制檯中,觀察rails服務器發生了什麼,或者看看ARC返回的是什麼json輸出。