来自用户输入的动态变量

时间:2015-08-21 06:45:10

标签: ruby class variables

我正在尝试获取用户的输入以创建新的User对象:

class User
  attr_accessor :name
  attr_accessor :age
  attr_accessor :email
end

puts "Name:"
input = gets.chomp.to_s
name = "#{input} = User.new"

puts "Age:"
age = gets.chomp.to_s

puts "Email:"
email = gets.chomp.to_s

name.name = "#{input}"
name.age = "#{age}"
name.email = "#{email}"

puts "Name: #{input.name}, Age: #{input.age}, E-mail: #{input.email}"

如何调用新创建的对象以便输入新属性?我是否需要更改

name部分
name.name = "#{input}"
name.age = "#{age}"
name.email = "#{email}" 

到用户的输入?

1 个答案:

答案 0 :(得分:0)

在您的情况下,input = gets.chomp.to_s是一个字符串,字符串没有任何nameageemail方法,您应该创建一个新的{{1}对象然后用用户给你的信息填充它,你的代码离答案不远,但是有很多小错误,这里是以下工作代码:

User

我希望它可以帮到你。

顺便说一句,你想用这条线做些什么:class User attr_accessor :name attr_accessor :age attr_accessor :email end user = User.new puts "Name:" user.name = gets.chomp.to_s puts "Age:" user.age = gets.chomp.to_s puts "Email:" user.email = gets.chomp.to_s puts "Name: #{user.name}, Age: #{user.age}, E-mail: #{user.email}" ?因为你只是用内容“User.new”创建一个新字符串(作为一个字符串文字,它不是以任何方式由Ruby执行的,所以你永远不会有一个新的对象,通过用双(或单)引号包围它的声明