0

列を含むテーブルsymbolsがあります: 、そのテーブルの主キーはid and symbol_nameどこですかid

私の Symbol モデルでは、

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 に答える