2016-09-11 7 views
0

Railsでかなり単純なフローに問題があります。いくつかのテキストにユーザタイプを入れ、バックエンドを呼び出して、別のドメインのRESTful APIにGETリクエストを行いたいとします。この情報を使用して検索結果を表示したいのですが、何らかの理由で設定した変数にアクセスできません。Rails:検索結果を取得するAPI(別のドメイン)を呼び出す

houses_controller.rb

class HousesController < ApplicationController 
    def index 
    end 

    def search 
     @search_results = ["fake", "test", "results"] 
    end 
end 

index.html.erb

​​

routes.rbを

Rails.application.routes.draw do 
    # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html 
    root :to => "houses#index" 
    get "/houses/search" => "houses#search" 
end 

私はルート・ページ上で開始し、私はので、私のform_tagでremote: trueを使用私はこれが人々がAJAXリクエストをどのようにしているのだろうと考えていますか?私は完全にオフにこの方法でレールでAJAXの要求を行うには?私はjqueryを使うのが好きですが、これはRailsのやり方のようでした。

デバッグ中にメッセージが表示されたため、"No template found for HousesController#search, rendering head :no_content"というメッセージが表示されたので、私はsearch.html.erbを試してみましたが、そのファイルを追加しても、index.html.erb search.html.erbファイルを完全に無視してください。

また、インデックスアクションに@search_resultsを設定しようとしました。私はそこに設定すると動作しますが、そこに設定する静的な値は必要ありません。私は 'search'アクションを呼び出すときに生成される値が必要です。

答えて

0

remote:trueを使用する場合は、html.erbではなくsearch.js.erbを作成する必要があります。 respond_toブロックを使用し、js呼び出しの動作を指定できます。

関連する問題