Nie można uzyskać dostępu do zdefiniowanych zmiennych attr_accessor
Używam Thinking Sphinx do uruchamiania wyszukiwania i dostaję odpowiednie modele ActiveRecord w porządku. Problem polega na tym, że chcę utworzyć odpowiednią ścieżkę łącza i tekst na każdym modelu, a następnie wysłać informacje do przeglądarki w postaci JSON, za pośrednictwem AJAX. Używam następujących elementów do budowania tych atrybutów łącza:
W kontrolerze:
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
W modelu:
class TaggedItem < ActiveRecord::Base attr_accessible :name attr_accessor :search_link, :search_text<p></p>
def build_ajax_response self.search_link = Rails.application.routes.url_helpers.tagged_item_path(self.id) self.search_text = self.name end end
The resulting json object doesn't have either of the search_* attributes listed, much less have a value for them. I've tried using @search_link as well as just search_link in thebuild_ajax_response
method.Am I doing this wrong? Could there be something else interfering?