Techioz Blog

概要

たとえば、routes.rb ファイル内のコードは次のとおりです。

match 'products/:id' => 'products#show', via: :get

match は括弧なしのメソッドだと思うので、それは私にとって慣れ親しんだものです。次に、match メソッドは 2 つの引数を受け取ります。しかし、

'products/:id' => 'products#show'

暗黙のハッシュであるはずですか?ここで行われているように中括弧を使用せずにハッシュを作成することはできません

my_hash = 'p' => 'x'

次に、最後の部分は私の irb では機能せず、値を置き換えますが、構造は維持されます。

ドキュメントを読んで、必要なものの値をコピーペーストしてサブアウトするだけで機能する方法は知っていますが、構文を理解して、すべてが恣意的で必要なものであると感じずにコードを書くことができるようにしたいと考えています。何を入力すればよいのかを正確に示すドキュメント。

解決策

ハッシュに関しては、確かにハッシュです。新しいハッシュを作成するとき、Ruby はそれが中括弧 ({}) 内で定義されることを期待します。ただし、メソッドに引数として渡す場合 (最後の引数の場合)、中括弧なしで宣言することができます。 via::get でも同じことが起こります。

詳細については、こちらをご覧ください。