searchlogic - 搜索attr_accessor

时间:2012-03-14 15:58:57

标签: ruby-on-rails searchlogic

我有一个表symbols,其中包含以下列:id and symbol_name,其中id是该表的主键

在我的符号模型中,我有

class Symbol < ActiveRecord::Base

def symbol_id
"EMI:#{self.id}"
end

end

在我的index.html.erb页面上,用户可以在搜索文本字段中输入“EMI:777”来搜索ID为777的符号。

我正在使用searchlogic进行搜索。

<% form_for @search do |f| %>
    Search:
    <%= f.text_field :symbol_id_or_symbol_name_like %>
    <%= f.submit "Search" %>
<% end %>

当我在搜索表单中使用'symbol_id'时,我收到以下错误消息:

The condition 'symbol_id' is not a valid condition, we could not find any scopes that match this.

任何建议都表示赞赏

1 个答案:

答案 0 :(得分:0)

根据this post,您似乎希望根据虚拟属性执行scope

class Symbol < ActiveRecord::Base
  attr_accessor :symbol_id
  scope :symbol_id_search, where("symbol_id = ?", symbol_id)  

  def initialize
    @symbol_id = "EMI:#{self.id}"
  end

end

我不确定scope是否正确,因此您可能需要根据您的模型,控制器等深入研究。