Estoy usando Thinking Sphinx para ejecutar búsquedas y obtengo los modelos apropiados de ActiveRecord. El problema es que quiero crear una ruta de enlace y un texto apropiados en cada modelo, luego enviar la información al navegador en forma de JSON, a través de AJAX. Estoy utilizando el siguiente enlace para construir los atributos:No se puede acceder a attr_accessor variables definidas
En el controlador:
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
En el modelo:
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
El objeto JSON resultante no tiene ninguno de los atributos search_ * en la lista, y mucho menos tienen un valor para ellos. Intenté usar @search_link y simplemente search_link en el método
build_ajax_response
.
¿Estoy haciendo esto mal? ¿Podría haber algo más que interfiera?
¿Ha intentado utilizar 'build_ajax_response' en la consola? ¿Se ha planteado algo, hay algo establecido? – Draiken
Cuando ejecuto
build_ajax_response
no genera ningún error, pero, en la moda típica de ruby, devuelve la última expresión evaluada. (En este caso, self.name) – Tricnic