2012-03-14 66 views
0

我有一个表symbols其中包含列:id and symbol_name,其中id是表searchlogic - 搜索attr_accessor

的主键在我的符号模型中,我有

class Symbol < ActiveRecord::Base 

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

end 

在我的索引。 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. 

任何建议最欣赏

回答

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是否正确,因此您可能需要根据您的型号,控制器等进行深入研究。