2009-05-30 10 views
4

Railsコンソールでは、同じ行にセミコロンで区切られた複数のルビ文が好きではないようです。これを行うたびに、次の行は?>で始まり、最初の文だけが実行されたことがわかります。 それぞれのステートメントを別々の行に置く必要がありますか?セミコロンをRailsコンソールの文セパレータとして使用

>> 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 = "[email protected]"; display_name = "Johndispay"; user_level = 9; 
user.username = "John"; hashed_password = "John"; first_name = "John"; last_name = "coltrane"; email = "[email protected]"; display_name = "Johndispay"; user_level = 9; 

?> user.save 
user.save 

=> true 

user.username = "John";除くすべてはあなたが言う必要が

+0

また、コードは実際にはすべて実行されたことに注意してください:あなたはhashed_pa​​ssword、first_nameなどといったローカル変数を作成して設定します。使用しているソフトウェアが間違っていると思うたびに、 (ほぼ - 時にはバグがありますが、それは私が探した最初のものではありません);-) –

答えて

5

を無視された "ユーザーを。" Rubyでは、userのインスタンスの属性割り当てメソッドを呼び出すことを意味しています。以下のようなので、

>> user = User.new(:username => "John", :hashed_password => "John", ... 
+0

ハッシュチップをありがとう! – eggdrop

1
あなただけの、あなたが新しいインスタンスに設定する属性のハッシュを渡すことができ、がそうでなければ、あなただけの

など、
>> user.username = "John"; user.hashed_password = "John"; user.first_name = "John"; user.last_name = "coltrane"; user.email = "[email protected]"; user.display_name = "Johndispay"; user.user_level = 9; 

を「hashed_pa​​ssword」と呼ばれるローカル変数を設定しています

は、あなたはあなたが私が試した

user.username = "John"; user.hashed_password = "John"; 

を意味するものではありませんでしたです

>> a = 1; b= 2 
=> 2 

>> a 
=> 1 

>> b 
=> 2 

何かがうまくいかない場合は、1つのルールを使用できます。最も単純なケースに減らしてください。

4

これは末尾です。入力してください。あなたが ';'最後に、IRBは別のステートメントを追加したいと考えます。それをオフにすると、すべての文が評価され、最後の文の戻り値が返されます。時には

私が呼んでいる方法は、私がこのような何かを行います大きな配列を返すために起こっている場合...

a = Account.entries; a.size 

これは私が必要とする値とちょうど出力配列のサイズを保存しますそれをコンソールにダンプしようとするのではなく、時間がかかることがあります。

+0

スポットあり、ありがとうございます。 –

関連する問題