木村勇土の備忘録

新たな発見・勉強になったこと・見分が広がったこと・覚えておきたいこと

redirectのURLの省略がよく分からなかったが意味が分かった   Railsチュートリアル 7.4.1

redirect_to @user

といった行がありますが、これは次のコードと等価になります。

redirect_to user_url(@user)

これはredirect_to @userというコードから (Railsエンジニアが) user_url(@user)といったコードを実行したいということを、Railsが推察してくれた結果になります。

https://railstutorial.jp/chapters/sign_up?version=5.1#table-RESTful_users

yaml形式で確認 Railsチュートリアル 7.1.3

rails c

user = user.first

puts user.attributes.to_yaml   (又は、   y user.attributes)

 

yamlで出すと構造が確認しやすい!

※attributesを入れないと属性付きで分からないので注意

開発環境にだけ、デバック表示をする  Railsチュートリアル 7.1

app/views/layouts/application.html.erb

 

      <%= yield %>
      <%= render 'layouts/footer' %>
      <%= debug(params) if Rails.env.development? %>
 (もし開発環境ならデバック情報を出す) </div> </body> </html>

エラー内容をコンソールで確認する

user = User.new(name: "", email: "")

user.valid?    ← これで有効性の確認 

user.errors.full_messages  ← エラーメッセージ出力(配列で全部)

user.errors.messages  ← エラーメッセージ出力(ハッシュ)(限定できる)

メソッド引数の省略部分の読み方

rails 4.3.3

{ :name => "Michael Hartl" }

上のコードと、

{ name: "Michael Hartl" }

というコードは等価になります (一般的には省略記法が好まれますが、明示的に接頭にコロンをつけてシンボル (:name) であることを強調するという考え方もあります)。

 

rails 4.3.4

実は、Ruby では丸カッコは使用してもしなくても構いません。次の2つの行は等価です。

# メソッド呼び出しの丸カッコは省略可能。
stylesheet_link_tag('application', media: 'all',
                                   'data-turbolinks-track': 'reload')
stylesheet_link_tag 'application', media: 'all',
                                   'data-turbolinks-track': 'reload'

次に、media引数はハッシュのようですが、波カッコがない点が不思議です。実は、ハッシュがメソッド呼び出しの最後の引数である場合は、波カッコを省略できます。次の2つの行は等価です。

# 最後の引数がハッシュの場合、波カッコは省略可能。
stylesheet_link_tag 'application', { media: 'all',
                                     'data-turbolinks-track': 'reload' }
stylesheet_link_tag 'application', media: 'all',
                                   'data-turbolinks-track': 'reload'

 

rails console  サンドボックスモード

コンソールをサンドボックスで起動すると、そのセッションで行ったデータベースへの変更をコンソールの終了時にすべて “ロールバック” (取り消し) してくれます。

bit bucketにあえてコピーを保存  (後で確認したいから)

①Bitbucketに新リポジトリ作成

②git remote set-url origin git@bitbucket.org:yutokimura0331/(新リポジトリ名).git

③git push -u origin --all

④再度②でorigin名を元に戻す