1

Rails 3.2 と thinking_sphinx gem を使用しており、モデルに次のコードがあります。

#encoding: utf-8
class Feedback < ActiveRecord::Base

  attr_accessible :feedback_type

  FEEDBACK_TYPE = { 1 => "found cheaper", 2 => "complaints", 3 => "wishes",
                   4 => "other" }

  define_index do
    indexes feedback_type
    has created_at, updated_at
    set_property delta: true
  end
end

私のfeedback_controllerには次のものがあります:

  @feedbacks = Feedback.search(params[:search], page: params[:page], 
                       per_page: 10,
                       sort_mode: :extended)

feedback_type はデータベースの整数型フィールドであり、FEEDBACK_TYPE 値に応じて 1 から 4 までの値を持ちます。ビューでは、Feedback::FEEDBACK_TYPE[feedback.feedback_type] でフィードバック タイプを表示しています。検索フォームで「希望」などを入力する FEEDBACK_TYPE 文字列値によってモデルに検索を実装できますか? 助けてくれてありがとう。

4

2 に答える 2

1

実際にはこれを試しませんでしたが、次のように動作するはずです:

    define_index do
        indexes "case feedback_table_name.feedback_type 
                 when 1 then 'found cheaper'
                 when 2 then 'complaints'
                 when 3 then 'wishes'
                 when 4 then 'other'
                 end",  :as=>:feedback_type
        has created_at, updated_at
        set_property delta: true
    end
于 2012-12-22T08:35:29.723 に答える