1

Sublime Text を使用して Ruby でこの単純なプログラムを作成しましたが、何らかの理由で Sublime text 組み込みシステムを使用してビルドすると、次のエラーが発生します。

`deposit': undefined method `chomp' for nil:NilClass (NoMethodError)

cmdを使用して実行すると、完全に実行されます。

class BankAccount
    def initialize(name)
        @transactions = []
        @balance = 0
    end
    def deposit
        print "How much do you want to deposit?"
        amount = gets.chomp
        @balance += amount.to_f
        puts "$#{amount} is deposited"
    end
    def show_balance
        puts "Your balance is #{@balance}"
    end
end
bank_account = BankAccount.new("Rohit Begani")
bank_account.class # => BankAccount
bank_account.deposit
bank_account.show_balance
4

1 に答える 1

3

Sublime は、インタラクティブな入力を単独で処理することはできません。SublimeREPLを介してスクリプトを実行するか、カスタマイズされたビルド システムを作成してコマンド プロンプトを開いてコードを実行することができます。幸いなことに、これはそれほど難しくありません。次の内容で Sublime に新しいファイルを作成します。

{
    "cmd": ["start", "cmd", "/k", "c:/ruby193/bin/ruby.exe", "$file"],
    "selector": "source.ruby",
    "shell": true,
    "working_dir": "$file_dir"
}

名前を付けて保存しますPackages/User/Ruby_cmd.sublime-buildPackagesは、 を選択したときに開いたディレクトリPreferences -> Browse Packages...です。を選択Tools -> Build System -> Ruby_cmdし、でファイルを実行しますCtrlB

これは、XP 以降のすべてのバージョンの Windows で動作するはずです。startただし、OSXまたはLinuxにはおよびcmdプログラムがないため、OSXまたはLinux向けではありません...

于 2013-10-13T17:43:24.030 に答える