0

ActiveScaffold で一般的なフィールド検索が機能しています。このより複雑な検索を行う方法がわかりません。

Account と User の 2 つのテーブルがあり、メールを検索して、一致するアカウントのリストを取得したいと考えています。電子メール フィールドは User にあり、Account has_many :users です。

クエリがどのように行われるかを考えるのに苦労しています。理想的には、次のようなことをしたいと思います。

Account.where(email: 'search_term').all

また

User.where(email: 'search_term').includes(:account).all

4

1 に答える 1

0

あるテーブルからデータを検索し、別のテーブル (を含む) から結果を返したい場合は、それらの外部列を仮想列として追加するだけです。

ユーザーコントローラーで:

active_scaffold :user do |conf|
conf.search.columns << :email
conf.list.columns << :account
#...
end

それだけです、クエリはありません:)

アカウント列の結果が <#23423.. のようなコードで表示される場合は、Active Scaffold がそのクラス レコードの記述方法を認識できないため、モデルで必要な方法を伝える必要があります。

class Account << ActiveRecord::Base
....
def to_label
 "cod: #{account_number}"
end 
于 2013-04-23T20:09:46.170 に答える