Shp*_*ord 10 postgresql activerecord ruby-on-rails rails-activerecord
我怎样才能destroy_all在阵列上运行?
我有以下查询:
spam_users = User.find_by_sql("SELECT * FROM users WHERE email ~* '21cn.com'")
Run Code Online (Sandbox Code Playgroud)
我试过跑spam_users.destroy_all但是得到了undefined method 'destroy_all' for #<Array:0x10b09ce30>.
我在这个特定的应用程序中运行Rails 2.3.8以及PostgreSQL.
mu *_*ort 27
您不在destroy_all数组上执行,destroy_all是模型上的类方法.以下应该杀死你的spam_users数组中的所有内容:
User.destroy_all("email ~* '21cn.com'")
Run Code Online (Sandbox Code Playgroud)
spam_users如果你已经将它们用于其他目的,你也可以逐个迭代并销毁它们:
spam_users.each(&:destroy)
Run Code Online (Sandbox Code Playgroud)
您可能还想稍微调整一下正则表达式:
User.destroy_all("email ~* '21cn\\.com$'")
Run Code Online (Sandbox Code Playgroud)
这样你就可以找到一个文字.而不是"任何字符"并将其锚定到字符串的末尾.您还可以使用带%q(...)引号的字符串来减少转义:
User.destroy_all(%q(email ~* '21cn\.com$'))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7292 次 |
| 最近记录: |