61

データベースから特定の列のみを選択するようにSQLクエリを構造化するレールの方法は何ですか。連続した定期的なajax呼び出しからのロードを避けたい大きなデータフィールドがいくつかあります。不必要に読むことはリソースを消費し、遅くなります。

@itemlist = Item.find(:all, :conditions => { .... } ) #this select all columns 

SELECT name, address FROM users;代わりに探していますSELECT * FROM users;

4

6 に答える 6

126

レール 3:

Item.select("name, address").where( .... )

于 2012-04-21T13:37:32.170 に答える
29

:selectコンストラクトを利用します。これを試して:

@itemlist = Item.select('name, address', conditions: { .... } )

以前のバージョンの Rails の場合:

@itemlist = Item.find(:all,:select => 'name, address', :conditions => { .... } )
于 2012-04-21T05:25:01.243 に答える
11

Arel (別名 Rails 3) を使用して、以下を使用します。

Item.where(...).select("name, address")

また、 :include => ... を持つスコープにタックすると、.select が無視されるようです。

于 2012-04-21T05:26:04.710 に答える
7
@itemlist = Item.select('name, address').where(...#some condition)
于 2012-04-26T09:19:32.363 に答える
3

これを試して:

@itemlist = Item.find(:all, :select => "name, address", :conditions => { .... } )
于 2012-04-21T05:24:43.360 に答える