2017-03-27 13 views
0

をparamsは:の設定Railsのエンドポイントは、私はシンプルなRailsアプリケーションを持っているでGETエンドポイントを公開したい

GET http://localhost/widgets/{widget_id}/{fizz_id} 

私はどのように私はそのエンドポイントのセットアップ期待を(することができます思ったんだけど私のroutes.rbおよび/またはコントローラ、たとえばWidgetsController{widget_id}{fizz_id}をパスパラメータとして使用していますか?

コントローラ内でparamsにアクセスすることができますが、フォームパラメータまたはクエリ文字列パラメータにアクセスすることしかできないと思います。ここで、これらのIDはRESTfulなパスの一部です。

  1. エンドポイントが実際には次のように構成する方法:GET http://localhost/widgets/{widget_id}/{fizz_id};および
  2. コントローラメソッド/アクション内からこれらのIDの値にアクセスする方法。そしてこのエンドポイントを指定する
  3. がGET動詞のためにのみ

答えて

2

どのように私は私のroutes.rbをでセットアップ(パスのparamsとして{widget_id}{fizz_id}と)そのエンドポイントへの期待を

# routes.rb 
get '/widgets/:widget_id/:fizz_id', to: 'widgets#action' 
# widgets_controller.rb 
def action 
    widget_id = params[:widget_id] # <- value of /:widget_id 
    fizz_id = params[:fizz_id] # <- value of /:fizz_id 
end 
することができます

詳細については、documentation.

1

YあなたのWidgetsController

get '/widgets/:widget_id/:fizz_id', to: 'widgets#show' 

def show 
    execute(params[:widget_id], params[:fizz_id]) 
end 
このような行を入れて、あなたの routes.rb

http://guides.rubyonrails.org/routing.html

:OUを使用すると、Railsが、ここでのルーティングについて知っている必要がありますすべてを見つけることができます

関連する問題