キリンめも

記事を書いています #rails #swift #JS #UE4

Rubyの会14日目「#・nil・rails cの文字化け」

▂▅▇█▓▒░(’ω’)░▒▓█▇▅▂うわあああああああ(心境)

 

今日の進捗です。

f:id:geta206:20160725124433p:plain

この2つの他に「文字化けの直し方」についても記載します。

agenda

  1. 復習   [  full_title(yield(:title))  ]
  2. エラーの起こる理由 test
  3. nil
  4. コメントの書き方。 #
  5. 文字化け問題。[rails](解決済)
  6. まとめ

1.復習[  full_title(yield(:title))  ]

   4行目(黄色い部分)に注目。

 

<title><%= full_title(yield(:title)) %></title>

上の意味がわからない場合は前の記事に戻る。前回の「引数」の復習。

 

rails concole

rails console(コンソール)とは、rails の環境を読み込んだ状態でrubyコードを実行できるツールです

 

-----------------------------------------------------------------------

2.エラーの起こる理由 test

エラーは自力で直せた(教科書通りすすめたらできた

のだが、理由がわからなかったので記載する。

リスト4.5: RED
$ bundle exec rake test
3 tests, 6 assertions, 1 failures, 0 errors, 0 skips

エラーを治す方法

「home」画面

<% provide(:title, "Home") %>
<h1>Sample App</h1>
<p>
  This is the home page for the
  <a href="http://www.railstutorial.org/">Ruby on Rails Tutorial</a>
  sample application.
</p>

 

<% provide(:title, "Home") %>

部分を消去する。こうすることによりtestがパスされる為エラーがなくなるらしい。

最初何言っとるんじゃってなったので細かく説明していく。

少し前に戻る。

 

このtestページの意味を考えると理由は簡単だった。

テスト4.4: Homeページのタイトル確認用にテストを更新する REDtest/controllers/static_pages_controller_test.rb
require 'test_helper'

class StaticPagesControllerTest < ActionController::TestCase
  test "should get home" do
    get :home
    assert_response :success
    assert_select "title", "Ruby on Rails Tutorial Sample App"
  end

  test "should get help" do
    get :help
    assert_response :success
    assert_select "title", "Help | Ruby on Rails Tutorial Sample App"
  end

  test "should get about" do
    get :about
    assert_response :success
    assert_select "title", "About | Ruby on Rails Tutorial Sample App"
  end
end

 

 まずはhomeのテストから

test "should get home" do
    get :home
    assert_response :success
    assert_select "title", "Ruby on Rails Tutorial Sample App"
  end

   ruby onRails Tutorial Sample App と表示さればok

 

 それに対して  help と  about  は

 test "should get help" do
    get :help
    assert_response :success
    assert_select "title", "Help | Ruby on Rails Tutorial Sample App"
  end

  test "should get about" do
    get :about
    assert_response :success
    assert_select "title", "About | Ruby on Rails Tutorial Sample App"
  end

 縦棒が入っている!(要は表示の仕方が違う)だから provide の部分を消さないといけなかった。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

3.nil

何もない。ブランクという。

nil は決してないという意味。nill

nilは存在しないという意味。

対して ""は「何も無い」が存在している。空白の存在。

book.nil?
もしbook自体が存在しないなら、上記はtrueを返す。
nilに近い関数達
 enpty?     中身の値が空なのかを調べる(入れ物はある前提)trueかfalseで値を返す。
 blank? nil?とempty?を足したもの。中身は空なのかと,入れ物自体は存在するのか判定。

 -------------------------------------------------------------

4. コメントの書き方 ruby

初めて知ったのも何個かあった。

"ハッシュマーク" "オクトソープ"

Rubyでコメントを書くにはいくつか書き方があります。

  • # コメント
    -- 1行コメントは「#」のあとに書く

  • =begin
    コメント
    =end
    -- 「=begin」から「=end」の間がコメントになる

  • __END__
    -- この行以降すべてがコメントになる

 

qiita.com

おまけ rails c で色々試した。

文字列の結合
>> "foo"+"bar"
=> "foobar"
 
文字列の中で変数を使う方法
>> "#{first_name} Hartl"
=> "Michael Hartl"
 
1  空白を入れる
>> first_name + " " + last_name
=> "Michael Hartl"
 
2  空白入れる
>> "#{first_name} #{la}"
lambda     last_name
>> "#{first_name} #{la}"
lambda     last_name
>> "#{first_name} #{last_name}”

puts と print の違い

文字列の出力することは同じだが、改行するかしないかの違い。 

puts  実行結果を改行する

print "hoge"
hoge=> nil

print  改行しない

puts "hoge"
hoge
=> nil

print で改行表示させる方法
>> print "foo\n"
foo

[Ruby]putsとprintの挙動の違いを確かめてみる : THINK PINK

-----------------------------------------------------------

 

5.文字化け問題[  rails  ](解決済)

  4.2.1 の部分

$ rails console
>> 17 + 42   # 数の加算
=> 59

 #の後が文字化けしてしまった。。

 

 rails c文字化けの直しかた

qiita.com

これで直ると思ったが、失敗。👆

libreadline rails

qiita.com

どうやら、rb-readlineが必要らしいので、Gemfileにgem 'rb-readline' を追加してインストール

解決しました。

6.まとめ

使用したコマンド

  • Ctrl + D     コンソール終了