1

Railsコンソールを使用していて、末尾に空白が含まれているユーザー名のリストを生成したいと思います。構文はこんな感じになると思っていたのですが、うまくいきませんでした。私よりも優れたプログラマーが私が間違っていることを指摘できる変更はありますか?

> User.name.where("% ")
4

3 に答える 3

3

MySQLを使用しているかどうかはわかりませんが、アプローチは次のようになります。

User.where("name LIKE '% '")

データベースに応じて変更できます。ただし、これは少し遅いです。

于 2012-09-18T22:25:23.763 に答える
1

1つの方法は

Job.all.select{|j| j =~ /^\d+$/}

ただし、MySQLバージョンほど効率的ではない場合があります。

もう1つの可能性は、名前付きスコープを使用して醜いSQLを非表示にすることです。

  named_scope :all_digits, lambda { |regex_str|
    { :condition => [" invoice_number REGEXP '?' " , regex_str] }
  }

次に、Job.all_digitsがあります。

RailsでActiveRecordを使用するときにRuby正規表現を指定する方法からの回答

あなたが持つことができます

regex_str = "\w+\s+$"

ありがとう

于 2012-09-18T20:26:31.757 に答える
0

これが私が行ったものです:

User.all.select { |c| c.name.end_with?(" ") }

これで必要なリストができました。

それはパリトッシュの最初の答えに基づいています。一般的にはより良いリソースだと思うので、私は彼を標準的な答えにしています。私の解決策は私を助けるだけですが、彼には役立つ戦略がたくさんあります。

于 2012-09-18T21:08:27.150 に答える