Ruby 来自用户输入的动态变量

Ruby 来自用户输入的动态变量,ruby,class,variables,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 na

我正在尝试获取用户的输入以创建新的
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 = "#{input}"
name.age = "#{age}"
name.email = "#{email}" 

到用户的输入?

在您的情况下,
input=gets.chomp.to_s
是一个字符串,字符串没有任何
名称
年龄
电子邮件
方法。您应该创建一个新的
用户
对象,然后用用户提供给您的信息填充它,您的代码离答案不远,但有很多小错误,以下是工作代码:

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}"
我希望它能帮助你

顺便问一下,您想用这行代码实现什么:
name=“#{input}=User.new”
?因为您只创建了一个内容为“User.new”的新字符串(作为字符串文本,Ruby不会以任何方式执行它),所以您永远不会通过在其声明周围加双引号(或单引号)来获得一个新对象