Hello World from OSS Silicon Valley


HowToUse/RubyOnRails/4.2/Heroku/2015


  • The added line is THIS COLOR.
  • The deleted line is THIS COLOR.
#contents

*Prerequisite [#z427d905]
-Ubuntu Server 14.04 installation (You can refer [[HowToUse/UbuntuServer/14.04]])
-RVM installation (You can refer [[HowToUse/RVM/1.25]])
-Ruby On Rails installation (You can refer [[HowToUse/RubyOnRails/4.1]])
-PostgreSQL installation (You can refer [[HowToUse/PostgreSQL/9.3]])
-Ruby On Rails with PostgreSQL connection (You can refer [[HowToUse/RubyOnRails/4.2/PostgreSQL/9.3]])

*Install&Setup [#re66614c]
**Prepare Heroku's development environment [#ze65401f]
:Step.1|
Access to Heroku's web site.

#ref(CreateAccount_fig1.png,,500x266,)

:Step.2|
Login the system.

#ref(CreateAccount_fig2.png,,500x266,)

#ref(CreateAccount_fig3.png,,500x266,)

:Step.3|
Click the Ruby's icon, and you will see the instruction how to install Heroku Toolbelt.

#ref(CreateAccount_fig4.png,,500x266,)

:Step.4|
Install bundler to your environment.

 $ gem install bundler

:Step.5|
Download Heroku Toolbelt from the link in web page.


*HowToUse [#qe563e1e]
**Create rails project [#h6e960a7]

:Step.1|
Login to Heroku server.

 $ heroku login

:Step.2|
Create new rails project.
Change directory of your application which uses PostgreSQL not Sqlite.
(You can refer [[HowToCreate/RubyOnRails/4.2/PostgreSQL/9.3]] about how to create Rails Application with )

 $ rails new <project name> --database=postgresql

:Step.3|
Create new controller for welcome page.
Create new project in Heroku space.

 $ rails generate controller welcome
 $ heroku create

You can destroy app with the following command.

 $ heroku apps:destroy --app <App name>


:Step.4|
Create welcome page.
Prepare sample project.

 $ vi app/views/welcome/index.html.erb 
 $ bundle exec rake assets:precompile
 $ git init
 $ git add .
 $ git commit -m "initial check-in"

 <h2>Hello World</h2>
 <p>
 <%= Time.now %>
 </p>
When you don't precompile the modules, Heroku sometimes doesn't recognize stylesheet as expected. [#dc1c44b6]

Then you will see the following window from the URL displayed in the terminal.

#ref(CreateApps_fig1.png,,500x266,)

:Step.5|
Config routing setting
If your application create image file and you want to display it in your application, add the following line in config/application.rb

 $ vi config/routes.rb
 $ vi config/application.rb

 root 'welcome#index'
 config.serve_static_assets = true

You can read [[here:https://devcenter.heroku.com/articles/rails-4-asset-pipeline]] for detail

:Step.6|
Check if it can run in local environment.
Deploy project into Heroku server.

 $ rails s
 $ git push heroku master

:Step.7|
Create new project in Heroku space.

 $ heroku create
**Configure rails project [#h6e960a7]
:Step.1|
Migrate database

 $ heroku run rake db:migrate

:Step.8|
Deploy the sample project to Heroku server.
Then you can access your application as expected. You can create record to the database in Heroku server.

 $ git init
 $ git add .
 $ git commit -m "initial checkin"
#ref(CreateApps_fig2.png,,500x266,)

#ref(CreateApps_fig3.png,,500x266,)

:Step.2|
You can setup environment variable as needed. For example, in case you want to use third party's authentification service, it is recommended to set upt those in environment variable so that internet user can't see it.

 $ heroku config:set GITHUB_KEY="xxx"
 $ heroku config:set GITHUB_SECRET="xxx"

:Step.3|
Load seed data

 $ heroku run rake db:seed


**Upload module from other work environment [#m787dc94]

:Step.1|
Login to Heroku environment.

 $ heroku login

:Step.2|
Add remote path.

 $ heroku git:remote -a <application ID>

:Step.3|
Push modules.

 $ git push heroku master

Then you can access your application.
In case you encounter the problem on "Permission denied", you can refer [[This Posting:http://stackoverflow.com/questions/12206779/git-push-heroku-master-permission-denied-publickey-fatal-the-remote-end-hung]].

#ref(CreateApps_fig1.png,,500x266,)
 $ heroku keys:add ~/.ssh/id_rsa.pub


**Connect Database [#jf515d14]

**Task Scheduller [#jcadae67]

:Step.1|
Migrate database
Create task file.

 $ heroku run rake db:migrate
:Step.2|
Test task.

(local execution)
 $ rake <task name>

(Execution in Heroku)
 $ heroku run rake <task name>

:Step.3|
Register task in Heroku.

https://scheduler.heroku.com/dashboard


*Author [#r1ccd722]
S.Yatsuzuka