Rubyの会14日目「#・nil・rails cの文字化け」
▂▅▇█▓▒░(’ω’)░▒▓█▇▅▂うわあああああああ(心境)
今日の進捗です。
この2つの他に「文字化けの直し方」についても記載します。
agenda
1.復習[ full_title(yield(:title)) ]
4行目(黄色い部分)に注目。
<title><%= full_title(yield(:title)) %></title>
上の意味がわからない場合は前の記事に戻る。前回の「引数」の復習。
rails concole
-----------------------------------------------------------------------
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ページの意味を考えると理由は簡単だった。
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は存在しないという意味。
対して ""は「何も無い」が存在している。空白の存在。
nilに近い関数達
enpty? 中身の値が空なのかを調べる(入れ物はある前提)trueかfalseで値を返す。
blank? nil?とempty?を足したもの。中身は空なのかと,入れ物自体は存在するのか判定。
-------------------------------------------------------------
4. コメントの書き方 ruby
初めて知ったのも何個かあった。
"ハッシュマーク" "オクトソープ"
Rubyでコメントを書くにはいくつか書き方があります。
# コメント
-- 1行コメントは「#」のあとに書く=begin
コメント
=end
-- 「=begin」から「=end」の間がコメントになる__END__
-- この行以降すべてがコメントになる
おまけ 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 改行しない
print で改行表示させる方法
>> print "foo\n"foo
[Ruby]putsとprintの挙動の違いを確かめてみる : THINK PINK
-----------------------------------------------------------
5.文字化け問題[ rails ](解決済)
4.2.1 の部分
$ rails console >> 17 + 42 # 数の加算 => 59
#の後が文字化けしてしまった。。
rails c文字化けの直しかた
これで直ると思ったが、失敗。👆
libreadline rails
どうやら、rb-readlineが必要らしいので、Gemfileに
gem 'rb-readline'
を追加してインストール
解決しました。
6.まとめ
使用したコマンド
- Ctrl + D コンソール終了