カテゴリー
ruby RubyonRails 仕事

rails入門

rails new books
cd books
rails s
> http://localhost:3000
CTRL+C

rails g scaffold entry title description:text picture
rails db:migrate
rails s
> http://localhost:3000/entries
CTRL+C

vi Gemfile
> gem 'carrierwave'
bundle
rails g uploader Picture
vi app/models/entry.rb
> mount_uploader :picture, PictureUploader
vi app/views/entries/_form.html.erb
> - <%= f.text_field :picture %>
> + <%= f.file_field :picture %>
vi app/views/entries/show.html.erb
> - <%= @entry.picture %>
> + <%= image_tag(@entry.picture_url) if @entry.picture.present? %>
rails s
> http://localhost:3000/entries
rails g controller hello index
rails s
> http://localhost:3000/hello/index
CTRL+C

vi app/controllers/hello_controller.rb
>   def index
> +   @time = Time.now
>   end
vi app/views/hello/index.html.erb
> <p>現在時刻: <%= Time.now %></p>
> <p>現在時刻: <%= @time %></p>
rails g scaffold book title:string memo:text

> http://localhost:3000/rails/info/routes

config/routes.rb
app/controllers/books_controller.rb
> http://localhost:3000/books/new

app/controllers/new.html.erb
ファイルの埋め込み
<%= render ファイル名, パーシャル内の変数名: 渡す変数 %>
<%= render 'form', book: @book %> → _form.html.erb
                                     ^
vi app/controllers/books_controller.rb
> def book_params
> + p "**********" # 見つけ易くするための目印。何でも良い。
> + p params # paramsの中身を表示
>   params.require(:book).permit(:title, :memo)
> end
# 保存
book = Book.new(title: "書名", memo: "あらすじ")
book.save
# 読み込み
books = Book.all.to_a
# 検索
book = Book.where(title: "書名").first
book.title  #=> "書名"
book.memo   #=> "あらすじ"
Books.last

# rails内でのirb
rails c

rails g migration AddAuthorToBooks author:string
rails db:migrate

# VIEWの修正
_form.html.erb
show.html.erb
index.html.erb
# CONTROLLERの修正
books_controller.rb
# gem install *** でもよい
gem i awesome_print

# irbにて
# requireを複数回実行しても最初のみ有効
require "awesome_print"
ap [1,2,3]    # 実行コマンド


# gemfile に記入する
# bundle install でもよい
bundle
# 生成される Gemfile.lock ファイルもソース管理対象

# rails内ではrequire不要
rails c
ap [1,2,3]    # 実行コマンド

gem 'uglifier', '>= 1.3.0'           # 1.3.0以上
gem 'coffee-rails', '~> 4.2'         # 4.2.**のみ

# gemは The Ruby Toolbox で探す。アクティブなものを選ぶこと。
https://www.ruby-toolbox.com/

# rails g migration Addカラム名Toテーブル名 カラム名:型名
rails g migration AddPictureToBooks picture:string
rails db:migrate

# gemファイルに追記
gem 'carrierwave'
bundle

rails g uploader Picture

vi app/models/book.rb
> mount_uploader :picture, PictureUploader
vi app/controllers/books_controller.rb
> def book_params
> - params.require(:book).permit(:title, :memo, :author)
> + params.require(:book).permit(:title, :memo, :author、:picture)
> end
vi app/views/books/_form.html.erb
> +  <div class="field">
> +    <%= form.label :picture %>
> +    <%= form.file_field :picture %>
> +  </div>
vi app/views/books/show.html.erb
> + <p>
> +   <strong>Picture:</strong>
> +   <%= image_tag(@book.picture_url) if @book.picture.present? %>
> + </p>
vi app/views/books/index.html.erb
> +       <th>Picture</th>
> +         <td><%= book.picture %></td>

rails s
カテゴリー
ruby RubyonRails 仕事

railsのインストール

Rubyのインストール
https://rubyinstaller.org/downloads/
rubyinstaller-devkit-2.6.4-1-x64.exe を実行しただけ

railsのインストール
gem install rails
アプリ作成時に警告が出る!

先に下記をインストールしてからrailsをインストールする

node.js
https://nodejs.org/en/download/
node-v10.16.3-x64.msi
インストール後にPATHの設定を修正する(バグらしい)
C:\Program Files\nodejs\ → C:\Program Files\nodejs

Yarn
https://yarnpkg.com/lang/ja/docs/install/
yarn-1.17.3.msi

railsアプリ作成
rails new アプリ名
→少しWarning出ているがとりあえず無視

railsを起動
cd アプリ名
ruby bin/rails s
http://localhost:3000/
Ctrl+Cで停止


カテゴリー
ruby 仕事

Ruby 処理

#条件分岐
if 条件1 then
	1成立時の処理
elsif 条件2 then
	2成立時の処理
else
	不成立時の処理
end

#if後置
処理 if 条件

case 変数
	when 値1,値2
		処理
	when 値3,値4
		処理
	else
		処理
end

case 変数
	when 値1,値2 : 処理
	when 値3,値4 : 処理
	else           : 処理
end
#繰り返し

while 条件 do
	処理
end

for 変数 in リスト do
	処理
end

loop do
	処理
end

数値.times do |変数|
	処理
	変数は0から数値-1
end

配列.each do |変数|
	処理
end

配列.each_with_index do |要素,インデックス|
	処理
	インデックスは0開始
end
カテゴリー
ruby 仕事

Ruby 基本

変数の宣言は不要。 行末のセミコロンも不要。

#実行
ruby ***.rb
ruby -e '***'
irb
#コメント

#コメント

=begin
コメント
=end
#組み込み定数
ARGV
ENV
RUBY_VERSION
RUBY_PLATFORM
STDIN
STDOUT
STDERR
#出力
puts "aaa"	#改行付き
print "bbb"	#改行無し

x = "ccc"
print("変数の値は#{x}です。\n")
#配列
#文字列と数値の混在可

配列名 = ["要素1","要素2","要素3"]
配列名 = %w(要素1 要素2 要素3)

配列名[0]	#先頭の要素
配列名[-n]	#最後からn番目の要素

配列名.length
配列名.size

配列名 << 追加要素	#追加
配列名.clear		#クリア
配列名 = []			#初期化
配列名.delete_at(インデックス)	#削除

配列名.sort
配列名.min
配列名.max
#範囲
2..8	#2,3,4,5,6,7,8と同じ意味となる