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 RailsでWebサービスを作ったので、その作り方をメモしておきます。
サービス名:らりぶ おれんち
作るサービス:部屋の写真共有サイト
部屋の写真をアップロードしてみんなで見る事ができる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
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"
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