Sto utilizzando Thinking Sphinx per eseguire ricerche e ottengo gli appropriati modelli di ActiveRecord. Il problema è che voglio creare un percorso di collegamento e un testo appropriati su ciascun modello, quindi inviare le informazioni al browser sotto forma di JSON, tramite AJAX. Sto usando il seguente collegamento per costruire quelli attributi:Impossibile accedere alle variabili definite attr_accessor
Nel controllore:
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
Nel modello:
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
L'oggetto JSON risultante non dispone di uno dei search_ * attributi elencati, tanto meno hanno un valore per loro. Ho provato a utilizzare @search_link e anche search_link nel metodo
build_ajax_response
.
Sto sbagliando? Potrebbe esserci qualcos'altro che interferisce?
Hai provato a utilizzare 'build_ajax_response' sulla console? Qualcosa è sollevato, qualcosa è impostato? – Draiken
Quando corro
build_ajax_response
non genera alcun errore, ma, in tipico stile rubino, restituisce l'ultima espressione valutata. (In questo caso, self.name) – Tricnic