2009-08-03 5 views
6

Sequelのデフォルトの選択のように見えますが、いくつかの結合を追加するとさまざまな問題が発生します。少なくとも、あなたのオブジェクトには間違ったIDで終わる(複数の "id"カラムが返されるため)。あまりに多くの列を選択した後遺症

のようにすると、渡された文字列を列として扱い、引用符で囲みます。これまでは、これを解決するために裸のSQLに戻す必要がありましたが、より良い方法が必要であることはわかっています。

答えて

5

Sequelのデフォルトの動作はすべての列を選択することですが、上書きするのは簡単です。あなたは、単一のテーブルからのみすべての列を選択したい場合は、次の

.select(:people.*)

あなたはSQL文字列リテラルを使用する場合:

.select('people.*'.lit)

+6

これらの構文のように、私のために働いていません続編4.10の':people。*'は、 '' Person :: Symbol''と '' people。* '''のための未定義メソッド*に '' people。* ":String'のための' '未定義メソッドlit"を返します。 ': 'people。*''は ''人々を探し出すだけです "*。 '.select_all(:people)'はトリックを行います。 – womble

+0

'select_all'は複数のテーブルも受け入れます。 'select_all(:tbl1、:tbl2).select_more(:tbl3__col)' – Kelvin

+2

'' people。* '。lit'は '' Sequel' 'になりました。 lit( 'people。*') ' – Kelvin

関連する問題