Tôi đang sử dụng Thinking Sphinx để chạy tìm kiếm và tôi nhận được Mô hình ActiveRecord phù hợp tốt. Vấn đề là, tôi muốn tạo một đường dẫn liên kết thích hợp và văn bản trên mỗi mô hình, sau đó gửi thông tin đến trình duyệt dưới dạng JSON, thông qua AJAX. Tôi đang sử dụng những điều sau đây để xây dựng những liên kết thuộc tính:Không thể truy cập attr_accessor biến được xác định
Trong bộ điều khiển:
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
Trong mô hình:
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
Kết quả là đối tượng json không có một trong các search_ * thuộc tính được liệt kê, ít nhiều có giá trị cho họ. Tôi đã thử sử dụng @search_link cũng như chỉ search_link trong phương thức
build_ajax_response
.
Tôi có làm điều này sai không? Có thể có cái gì khác can thiệp?
Bạn đã thử sử dụng 'build_ajax_response' trên bảng điều khiển chưa? Có cái gì đó được nêu ra, là một cái gì đó thiết lập? – Draiken
Khi tôi chạy
build_ajax_response
, nó không gây ra bất kỳ lỗi nào, nhưng, theo kiểu ruby điển hình, nó trả về biểu thức được đánh giá cuối cùng. (Trong trường hợp này, self.name) – Tricnic