【问题标题】:quick method to save ruby objects on command line?在命令行上保存 ruby​​ 对象的快速方法?
【发布时间】:2009-06-15 20:03:49
【问题描述】:

我正在使用 Netbeans 开发我的 RoR 项目,以便它管理 SQL 数据库。如何对我的数据库进行快速更改(即逐行编辑),最好是在命令行中?

我正在考虑 - 更改临时密码和用户以进行测试。感谢您的意见!

【问题讨论】:

    标签: sql ruby-on-rails command-line


    【解决方案1】:

    两种方式:

    • 运行 script/console 并直接从命令行操作 Rails 的模型对象

    • 运行script/dbconsole,这会将您放入RDBMS 的命令行(假设您的database.yml 文件已配置为正确访问您的数据库)。然后使用 SQL 做你需要做的事情

    (Railscast on Console Tricks)

    【讨论】:

    • 我过去曾使用脚本/控制台查询数据库,但在尝试保存对象时遇到了“未定义方法”异常。这可能是语法错误还是更基本的错误?这就是我一直在尝试的: prompt> Object.save("name" => "john", "password" => "foo"... ETC)
    • 你想要 Object.create("name" => "john", "password" => "foo")
    • 你应该做 o = Object.create(:name => "john", :password => "foo"),然后是 o.save
    • save 方法可选地只接受一个参数,它是一个布尔值,指示是否应该执行验证。
    • @John Topley - Object.create 自动调用 Object.save,Object.new 不会;-)
    【解决方案2】:

    尝试在您的 rails 应用程序目录中使用 ruby script/console。从那里,您可以执行以下操作:

    u = User.find(:first)
    u.password = 'something_else'
    u.save
    

    users = User.find(:all)
    users.each { |u| u.password = 'something'; u.save }
    

    这将更新所有用户的密码。

    【讨论】:

    • 你也可以像 User.create(:name => "Foo", :active => true) 一样创建新对象。
    【解决方案3】:

    你可以只使用直接的 mysql 接口,但我会使用脚本/控制台来检查你的模型类,除非你真的需要直接的数据库访问。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-04
      相关资源
      最近更新 更多