0

我有一个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.

任何建议都非常感谢

4

1 回答 1

0

根据这篇文章,您似乎想要基于虚拟属性做一个范围:

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

于 2012-03-14T17:13:49.690 回答