Hello World from OSS Silicon Valley


HowToUse/RubyOnRails/4.2/Heroku/2015


#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|
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|
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 )

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

 $ heroku create

You can destroy app with the following command.

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


:Step.4|
Prepare sample project.

 $ bundle exec rake assets:precompile
 $ git init
 $ git add .
 $ git commit -m "initial check-in"

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|
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/application.rb

 config.serve_static_assets = true

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

:Step.6|
Deploy project into Heroku server.

 $ git push heroku master


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

 $ heroku run rake db:migrate

Then you can access your application as expected. You can create record to the database in Heroku server.

#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

:Step.1|
Login to Heroku environment.

 $ heroku login

:Step.2
:Step.2|
Add remote path.

 $ heroku git:remote -a <application ID>

:Step.3
:Step.3|
Push modules.

 $ git push heroku master

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]].

 $ heroku keys:add ~/.ssh/id_rsa.pub



**Task Scheduller [#jcadae67]

:Step.1|
Create task file.

: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