虽然使用了“to_i”,但没有将Fixnum隐式转换为String

时间:2016-04-22 09:43:42

标签: ruby string fixnum

我正在Chris Pine的“学习编程”中完成一项任务。该程序要求一个人最喜欢的号码,加+1,并显示结果。我写了这个:

Better_number.rb:3:in \'+\': no implicit conversion of Fixnum into String (TypeError)

它返回了这个:

number = gets.chomp.to_i

我也试过

{{1}}

但这似乎不起作用。

3 个答案:

答案 0 :(得分:3)

尝试:

angular.module("myApp").controller("myCtrl", function($scope, $http) {
    var $scope.items = [];
    $scope.items = [
        {
            "id": 1,
            "name": "item1"
        },
        {
            "id": 2,
            "name": "item2"
        },
    ];

    getData();

    function getData() {
        $http.get("ng/getData")
            .then(function(response) {
                if (response.status == 200) {
                    $scope.items = response.items;
                    /*
                    $scope.items = [
                        {
                            "id": 5,
                            "name": "item11"
                        },
                        {
                            "id": 4,
                            "name": "item22"
                        }
                    ];
                    */
                }
            });
    }
});

您不能将字符串与数字相加。

答案 1 :(得分:2)

您无法在ruby中为字符串添加数字。你必须把它变成一个字符串。

<form name="myForm">
   <input type="text" ng-pattern="/^[a-zA-Z-]*$/" ng-model="" name="">
</form>

答案 2 :(得分:0)

您可以使用 #{"interpolation"} 来解决问题。

puts 'Hello, what\' your favorite number?'
number = gets.to_i
puts 'Here\' a better bigger favorite number - #{number + 1}'