Thinking Sphinxを使用して検索を実行していますが、適切なActiveRecordモデルを正常に取得しています。問題は、各モデルに適切なリンクパスとテキストを作成し、AJAXを介してJSONの形式でブラウザに情報を送信したいということです。私はこれらのリンク属性を構築するために以下を使用しています:
コントローラ内:
class FindController < ApplicationController
def tag_results
@results = ThinkingSphinx.search(params[:terms])
@results.each do |result|
result.build_ajax_response
end
respond_to do |format|
format.html
format.json { render :json => @results }
end
end
end
モデルの場合:
結果のjsonオブジェクトには、リストされているsearch_ *属性のいずれも含まれていません。ましてや、それらの属性の値はありません。メソッドでsearch_linkだけでなく、@search_linkを使用してみました。 class TaggedItem < ActiveRecord::Base
attr_accessible :name
attr_accessor :search_link, :search_text
def build_ajax_response
self.search_link = Rails.application.routes.url_helpers.tagged_item_path(self.id)
self.search_text = self.name
end
end
build_ajax_response
私はこれを間違っていますか?他に何か干渉がありますか?