0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Udemyのコース「【作りながら覚える!】 Ruby on Rails を用いたウェブ開発(Airbnbを作ろう!) 」を学ぶ。part 2-7

Posted at

Udemyのこちらのコースを受けながら、疑問に思ったこと、調べた結果、大事なことをまとめていきます。

part2-7 loginしている時としていない時で場合わけ

deviseのHPを見ると、usr_signed_in?という変数でログインしているかしていないかをboolで判断できる。

bootstrapのdropdownが動かない。

bootstrapのHPから適当にdropdownのコードひっぱてきたのだが、dropdownされない!
ググって見ると、application.jsのbootstrapの読み込む順番が大事らしい。jquery.jsがbootstrap.jsよりも後にあると、うまくいかないよう。
参照

自己課題

  • ログインしているときはログアウトとemailだけを表示。
  • dropdownを適応させ、emailを表示し、中にログアウトを入れよ。

part2-8 toastrを導入

toastr はこちら。

flash(簡易メッセージを表示するもの)を導入。

表示されるためのコード。

view/layouts/application.html.erbのbodyの中に追記。

<% unless flash.empty? %> (flashにメッセージがあるとき。)
  <script type="text/javascript">
    <% flash.each do |f| %>
      <% type = f[0].to_s.gsub('alert','error').gsub('notice','info') %>
      toastr['<%= type %>']('<%= f[1] %>');
    <% end %>  
  </script>
<% end %>

解説。
まずgsub。これは第一引数を第二引数に変換するもの。

s1 = 'AAABBBCCCAAA'
s2 = s1.gsub('AAA', 'XXX')  #=> "XXXBBBCCCXXX"

subは最初に出てきたものだけ変換する。
参照

fは何かと言うと、例えば、
f[:notice] = "signed in succeesfully"
とあった場合、f[0]=:notice, f[1]="signed in succeesfully"らしい。ちょっとここが引っかかる。行列的だけど=跨いでるのが不自然。

toastr[flashの種類][表示させる文字]にするために変換していくと思われる。

こちらの記事に同じコードが書いてある。

view/layouts/application.html.erbは全てのビューで読み込まれる。

bodyの中にこの記述がある。

<%= yield %>

ここにindex.html.erbなどが呼び出される。

自己課題

  • toastrを導入。
  • application.html.erbにコードを追加。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?