Ruby on Rails を使ったWebサービスの作り方(3)configファイルの変更


もくじページ
http://d.hatena.ne.jp/seika_m/20150815



home01>config>application.rb を編集します


class Application < Rails::Application
end
の中に以下を追加します


config.generators do |g|
#rails generate の際に、以下ファイルを生成しない
g.stylesheets false
g.javascripts false
g.helper false
g.test_framework false
end
# for Ajax
config.action_view.embed_authenticity_token_in_remote_forms = true


以下のようになります。

require File.expand_path('../boot', __FILE__)

require 'rails/all'

# Require the gems listed in Gemfile, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(*Rails.groups)

module Home01
  class Application < Rails::Application

    config.generators do |g|
      #rails generate の際に、以下ファイルを生成しない
      g.stylesheets false
      g.javascripts false
      g.helper false
      g.test_framework false
    end
    # for Ajax
    config.action_view.embed_authenticity_token_in_remote_forms = true

    # Do not swallow errors in after_commit/after_rollback callbacks.
    config.active_record.raise_in_transactional_callbacks = true
  end
end

home01>config>database.yml を編集します


production:
<

default: &default
  adapter: sqlite3
  pool: 5
  timeout: 5000

development:
  <<: *default
  database: db/development.sqlite3

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  <<: *default
  database: db/test.sqlite3

production:
  <<: *default
  #本番環境では PostgreSQLを使う
  adapter: postgresql
  encoding: unicode

Ruby on Rails を使ったWebサービスの作り方(2)rails new, gemファイルの変更


もくじページ
http://d.hatena.ne.jp/seika_m/20150815


アプリ作成用のフォルダ(/Users/ユーザー名/Documents など)でrails new します。

$ cd /Users/ユーザー名/Documents 
$ rails new サービス名 -B

ここでは $ rails new home01 -B とします。
ハイフンB はbundle install を自動で実行しないためのオプションです。



home01>gemfile を編集します


以下の行をコメントアウトします
gem 'sqlite3'
gem 'turbolinks'
gem 'spring'


以下の行のコメントを解除します
gem 'bcrypt', '~> 3.1.7'


以下の処理を追加します


gem 'bootstrap-sass' # bootstrapを使用する
gem 'carrierwave' # ファイルアップロード、保存を行う
gem 'kaminari' # ページングを行う


group :development, :test do
gem 'pry-rails' # rails console(もしくは、rails c)でirbの代わりにpryが使われる
gem 'pry-byebug' # デバッグを実施(Ruby 2.0以降で動作する)
gem 'sqlite3' # 本番以外ではSQLite3を使用する
end


group :production do
gem 'pg' # Heroku で動作するように、DBにPostgreSQLを使用する
gem 'rails_12factor' # Heroku で動作するように、Railsの動作を変更
gem 'cloudinary' # cloudでの画像ファイル保存を行う
end


以下のようになります。

source 'https://rubygems.org'


# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.2.3'
# Use sqlite3 as the database for Active Record
#gem 'sqlite3'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .coffee assets and views
gem 'coffee-rails', '~> 4.1.0'
# See https://github.com/rails/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby

# Use jquery as the JavaScript library
gem 'jquery-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
#gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.0'
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', '~> 0.4.0', group: :doc

# Use ActiveModel has_secure_password
gem 'bcrypt', '~> 3.1.7'

gem 'bootstrap-sass'      # bootstrapを使用する
gem 'carrierwave'         # ファイルアップロード、保存を行う
gem 'kaminari'            # ページングを行う

group :development, :test  do
  gem 'pry-rails'         # rails console(もしくは、rails c)でirbの代わりにpryが使われる
  gem 'pry-byebug'        # デバッグを実施(Ruby 2.0以降で動作する)
  gem 'sqlite3'           # 本番以外ではSQLite3を使用する
end

group :production do
  gem 'pg'                # Heroku で動作するように、DBにPostgreSQLを使用する
  gem 'rails_12factor'    # Heroku で動作するように、Railsの動作を変更
  gem 'cloudinary'        # cloudでの画像ファイル保存を行う
end

# Use Unicorn as the app server
# gem 'unicorn'

# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development

group :development, :test do
  # Call 'byebug' anywhere in the code to stop execution and get a debugger console
  gem 'byebug'

  # Access an IRB console on exception pages or by using <%= console %> in views
  gem 'web-console', '~> 2.0'

  # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
  #gem 'spring'
end

bundle installします

$ cd home01
$ bundle install

Ruby on Rails を使ったWebサービスの作り方(1)画面イメージ

もくじページ
http://d.hatena.ne.jp/seika_m/20150815



画面のイメージは以下の通りです。


トップページ(ログイン前)


新規登録ボタンを押すと、会員登録画面に遷移する


ログインボタンorはじめるボタンを押すと、ログイン画面に遷移する


会員登録後/ログイン後はユーザープロフィール画面に遷移する
部屋を追加ボタンを押すとアップロード画面に遷移する


アップロード画面


トップページ(ログイン後)
部屋を追加ボタンorはじめるボタンを押すとアップロード画面に遷移する



補足:画面イメージはCacoo https://cacoo.com/lang/ja/home で描きました。

Ruby on Rails を使ったWebサービスの作り方

Ruby on RailsWebサービスを作ったので、その作り方をメモしておきます。


サービス名:らりぶ おれんち


作るサービス:部屋の写真共有サイト
部屋の写真をアップロードしてみんなで見る事ができるWebサービスを作ります。



(1)画面イメージ
http://d.hatena.ne.jp/seika_m/20150816


(2)rails new, gemファイルの変更
http://d.hatena.ne.jp/seika_m/20150817


(3)configファイルの変更
http://d.hatena.ne.jp/seika_m/20150818


(4)model 生成、変更とmigrationファイルへの追記
http://d.hatena.ne.jp/seika_m/20150819


(5)その他ファイル
http://d.hatena.ne.jp/seika_m/20150820


(6)herokuへのデプロイ
http://d.hatena.ne.jp/seika_m/20150821

MacでのRuby開発環境の構築手順


MacでのRuby開発環境の構築手順をまとめました。
Ruby開発に必要なツール http://d.hatena.ne.jp/seika_m/20150712 のインストール手順になります。)
OS X 10.7とOS X 10.9で確認しました。)

Command Line Tools for Xcode のインストール

$ xcode-select --install
$ sudo xcodebuild -license

(失敗した場合は https://developer.apple.com/downloads/ からダウンロードしてください。)


Homebrew のインストール

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

(公式サイトにて最新のURLを確認してください。)


rbenv のインストール

$ brew install rbenv

rbenv のパス設定

$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile

ruby-build のインストール

$ brew install ruby-build

RubyGems のアップデート

$ sudo gem update --system

(--sysytem とありますが、updateしているのはgem自身です。)


Ruby本体の最新版インストール

Ruby本体は更新頻度が高いため、rbenvを使用してプロジェクト毎(フォルダごと)にインストールします。


最新版を調べます

$ rbenv install --list

ここではRuby 2.2.2 をインストールします。

$ rbenv install 2.2.2

(rbenv versions でインストールされたrubyのバージョンを確認できます
 *がついているのが、現在のrubyのバージョンです)


フォルダを作成します。

$ mkdir 新規フォルダ名 (例:$ mkdir rubydev01)
$ cd 新規フォルダ名 (例:$ cd rubydev01)


フォルダに対してRubyのバージョンを指定します。

$ rbenv local  2.2.2

(rbenv versions でRubyのバージョンが変わっていることが確認できます。)



Ruby on Rails のインストール

最新版を調べます

$ gem query --remote rails --name-matches "^rails$"


ここではRuby on Rails 4.2.4 をインストールします。

$ sudo gem install rails --version "=4.2.3" 

Railsの使い方

ターミナルを再起動します


Railsプロジェクトの作成

$ rails _4.2.3_ new test01


これでRuby xxx + Rails xxx の開発環境が構築されます。


Railsがbundle ファイルを作成してくれるので、実行します。
(不足しているGemをインストールしてくれます)

$ sudo bundle install


サーバー起動

$ rails server

http://localhost:3000 で起動したことを確認できます。)


サーバー停止
キーボードの control + C

MacでのRuby開発に必要なツール


MacでのRuby開発に必要なツールを整理してみました。


Rubyについて
オープンソースの動的なプログラミング言語。最初から入っている。
公式サイト:https://www.ruby-lang.org/ja/


RubyGemsについて
Rubyのアプリ、フレームワーク、ライブラリのパッケージ管理システム。個々のアプリはGemと呼ばれる。最初から入っている。
公式サイト:https://rubygems.org/
参考サイト:http://webos-goodies.jp/archives/51106257.html


Ruby on Railsについて
Webアプリ開発フレームワーク。Gemの1つ。Railsと呼ばれる。
公式サイト:http://rubyonrails.org/
参考サイト:http://railsdoc.com/rails


Bundlerについて
アプリ開発で使用するGemの種類やバージョンを管理するアプリ。Gemの1つ。Railsでは自動的に実行される。
公式サイト:http://bundler.io/
参考サイト:http://saj-kz.hatenablog.com/entry/2014/04/21/005845
http://www.rubylife.jp/rails/ini/index2.html


rbenvについて
Rubyのバージョンをアプリごと(フォルダ単位)に管理できるアプリ。Gemではない(のでgit cloneやHomebrewが必要) 。
公式サイト:https://github.com/sstephenson/rbenv
参考サイト:http://dev.classmethod.jp/server-side/language/build-ruby-environment-by-rbenv/


ruby-buildについて
rbenvでrubyをインストールするためのプラグイン
公式サイト:https://github.com/sstephenson/ruby-build#readme
参考サイト:http://takatoshiono.hatenablog.com/entry/2015/01/09/012040


バージョン管理について
つまり、Rubyのバージョンはrbenvで、GemのバージョンはBundlerで管理します。
管理が必要なぐらい、バージョンごとの動作の違いが大きいということでもあります。


Homebrew
OS X用パッケージマネージャー。Ruby以外のパッケージも扱える。rbenv, ruby-buildをインストールするのに使用する。
公式サイト:http://brew.sh/index_ja.html
参考サイト:http://millkeyweb.com/installing-homebrew/


Command Line Tools for Xcode
Macコマンドライン開発ツール。Homebrewをインストールするのに使用する。
公式サイト:https://developer.apple.com/xcode/features/
参考サイト:http://tweeeety.hateblo.jp/entry/2014/10/03/195429



MacでのRuby開発環境の構築手順をまとめました。
http://d.hatena.ne.jp/seika_m/20150713

SAP ABAP で.xlsxファイルを扱う

SAP ABAP で.xlsxファイルをアップロード、ダウンロードする汎用モジュール


アップロード汎用モジュール
TEXT_CONVERT_XLS_TO_SAP


ダウンロード汎用モジュール
SAP_CONVERT_TO_XLS_FORMAT


ダウンロード汎用モジュールの注意点:
・ファイル名はフルパスで指定する(間違えるとGUIごと落ちる)
・既存ファイルがある場合は上書きされる
・既存ファイルが開かれているとショートダンプする(事前にDELETEするほうがよい)
・データの中身は.xlsx形式(テキストエディタでは開けない)
・セットする内部テーブルの構造にSTRING型があるとショートダンプする
・内部テーブルの1構造がエクセルの1列になる
・セットできる文字数は項目長÷3(TEXT100なら33文字)


参考サイト
LSX Upload - IN SAP GUI and WDA
http://www.slideshare.net/benuantony/xlsx-upload-in-sap-gui-and-wda