分号作为Rails控制台中的语句分隔符

egg*_*rop 6 console ruby-on-rails

Rails控制台似乎不喜欢由分号分隔的同一行上的多个ruby语句.每当我这样做,下一行开头,?>我发现只执行了第一个语句.你是否必须将每个声明放在一个单独的行上?

>> user = User.new
user = User.new

=> #<User id: nil, username: "", hashed_password: "", first_name: "", last_name: "", email: "", display_name: "", user_level: 0, created_at: nil, updated_at: nil, posts_count: 0>

>> user.username = "John"; hashed_password = "John"; first_name = "John"; last_name = "coltrane"; email = "John@coltrane.com"; display_name = "Johndispay"; user_level = 9; 
user.username = "John"; hashed_password = "John"; first_name = "John"; last_name = "coltrane"; email = "John@coltrane.com"; display_name = "Johndispay"; user_level = 9; 

?> user.save
user.save

=> true
Run Code Online (Sandbox Code Playgroud)

除了user.username = "John";被忽略之外的一切

rni*_*son 8

你需要说"用户".所以Ruby知道你的意思是调用user实例的属性赋值方法.否则,您只需设置名为"hashed_pa​​ssword"的局部变量等.

>> user.username = "John"; user.hashed_password = "John"; user.first_name = "John"; user.last_name = "coltrane"; user.email = "John@coltrane.com"; user.display_name = "Johndispay"; user.user_level = 9; 
Run Code Online (Sandbox Code Playgroud)

虽然,您可以只传递要在新实例上设置的属性的哈希值,就像这样

>> user = User.new(:username => "John", :hashed_password => "John", ...
Run Code Online (Sandbox Code Playgroud)