2012-04-05 6 views
0

2.3.11 Railsアプリケーションを持っています。全文検索を追加して、 「記事」の内容とタイトル。私はこの目的のためにThinking-sphinxを使っています。私はちょうど検索リンクをクリックすることができるようにしたい/(ホームページ上の)/ advanced_search検索フォームを提出すると、一度検索フォームが提出された別のビューsearch_results.html.erb一致のリストを表示する記事検索フォームと結果ビューをレンダリングすることができません - 既存の検索と一緒にThinking-sphinxを使用してください。

問題:実際にどのようにビューがレンダリングされるのかは分かりません。私は自分のルーティングが正しいことも確信していません。私は別のものを試しましたが、何らかの理由で私が見つけたすべての例が異なっています。

だから私は、検索フォーム/コントローラ/ articles_controller/advanced_searchあります

<% form_tag :controller => 'articles', :action => 'search', :method => 'get' do %> 
    <%= text_field_tag :search, params[:search], :id => 'search_field' %> 
    <%= submit_tag 'Search', :name => nil %> 
<% end %> 

をそして、私は、検索結果を表示するための第二のビューを持っている、/controllers/articles_controller/search_results.html.erb:

<% @articles.each do |article| %> 
    <li><%= link_to article.name, :action => 'show', :id => article.id %></li> 
    <li><%= article.archived? %></li> 
<% end %> 

私はスフィンクスのインデックスを定義し、この私のモデル:

Articleクラス<はActiveRecord ::ベース validates_presence_of:ここ 検証の#restや団体名

define_index行う インデックス概要 インデックス:名前 エンド エンド

この私のコントローラと、新しい検索アクション/コントローラ/ articles_controller:

class ArticlesController < ApplicationController 

load_and_authorize_resource

def index @articles = Article.all

respond_to do |format| 
    format.html # index.html.erb 
    format.xml { render :xml => @articles } 
    format.json { render :json => @articles } 
end 

DEF検索 @articles = Article.searchのparams [:検索]

respond_to do |format| 
    format.html # 
    format.xml { render :xml => @articles } 
    format.json { render :json => @articles } 
end 

端 端私のルートで

.rb私はこの行を持っていますが、それは正しいとは言えませんが、取り出してみると、ルーティングエラー 'No route matches/advance_search'が{方法=>取得}

map.connect 'advance_search', :controller => "articles, :action => search 

私は他のすべてが正しいと仮定して、私の見解は正しくレンダリングされているように方法上の任意のアイデアをいただければ幸いです。

答えて

0

私を混乱させた問題の1つは、ネストされたルーティングが私が過度に使用されたと思っていたという事実でした。私は今この問題を回避する方法を見つけました。私は同じ質問をした人のためにまっすぐ答えを残すのが大好きでしたが、残念なことに私のソリューションは全く別のやり方をしていたので、この特定の質問に答えることはできません。私は後で実際に答えられた他の同様の質問があることに気づいた。

関連する問題