2012-03-02 12 views
3

Activescaffoldリストページのマイノーマル検索が機能しません。ActiveScaffold Rails 3での検索の実装方法

フィールドIDを持つListLocationsテーブルがあります。 list_id | wiki_location_id。 私は、次のしているモデル関係

これらについて
 class List < ActiveRecord::Base 
     validates_presence_of :name 
     has_many :list_locations, :dependent => :destroy 
     end 


     class WikiLocation < ActiveRecord::Base 
     has_many :list_locations, :dependent => :destroy 
     end 

     class ListLocation < ActiveRecord::Base 
     belongs_to :list 
     belongs_to :wiki_location 

     def wiki_location_title 
      WikiLocation.find(wiki_location_id).title if wiki_location_id 
     end 

     def wiki_location_title= (title) 
      wiki_location = WikiLocation.find_by_title(title) 
      self.wiki_location_id = wiki_location.id if wiki_location 
     end 
     end 

私のコントローラは

私の見解は、見て、あなたがList_Locationsテーブルにwiki_locationフィールド用(入力逐次検索)機能を入力すると、私も検索を実装している

 class Admin::ListsController < Admin::AdminController 
     active_scaffold :list do |conf| 
      conf.columns = [:name, :list_order, :enabled] 
      conf.columns[:enabled].form_ui = :checkbox 
      conf.columns[:enabled].inplace_edit = true 
      list.sorting = {:list_order => 'asc'} 
     end 
     end 


     class Admin::WikiLocationsController < Admin::AdminController 
     active_scaffold :wiki_location do |conf| 
      conf.columns = [:title, :street] 
      list.per_page = 10 
     end 
     end 


    class Admin::ListLocationsController < Admin::AdminController 
     active_scaffold :list_location do |conf| 
     conf.columns = [:list, :wiki_location] 
     conf.columns[:list].form_ui = :select 
     conf.search.columns << :list 
     end 
    end 

ですlike

enter image description here

私は今私の問題は、私はアクティブな足場の私のリストページでは、通常の検索を使用するときに私はなっておりませんで、以下の指定されたリンク Activescaffold autocomplete

の指示に従って、オートコンプリート機能を実装している

enter image description here

どんな結果

私は私のコンソールからもらったクエリは、それは代わりにlist.nのlists.idフィールド上の検索のように見えます

SELECT `list_locations`.`id` AS t0_r0, `list_locations`.`list_id` AS t0_r1, 
`list_locations`.`wiki_location_id` AS t0_r2, `list_locations`.`created_at` AS t0_r3, 
`list_locations`.`updated_at` AS t0_r4, `lists`.`id` AS t1_r0, `lists`.`name` AS t1_r1, 
`lists`.`list_order` AS t1_r2, `lists`.`enabled` AS t1_r3, `lists`.`created_at` AS 
    t1_r4, `lists`.`updated_at` AS t1_r5 FROM `list_locations` LEFT OUTER JOIN `lists` ON 
`lists`.`id` = `list_locations`.`list_id` WHERE ((((`lists`.`id` LIKE '%museum%')))) 
    ORDER BY `list_locations`.`id` ASC LIMIT 15 OFFSET 0 

ですame

なぜこのようなのですか?どうすればlist.nameを検索できるのですか?私もwiki_locations.title列を検索する必要があります。どのようにこれを行うことができます。助けてください。

答えて

1

は設定してください:それは働いた

conf.columns[:list].search_sql = 'list.name' 
+0

感謝を:) –

関連する問題