ラベル Ruby の投稿を表示しています。 すべての投稿を表示
ラベル Ruby の投稿を表示しています。 すべての投稿を表示

2015年4月15日

Heroku Postgres Databases のアップグレード方法

ここに記載している方法は、 2015/4/15 現在の方法です。
Herokuは適宜アップグレードされているので、データベースの移行も変更になる可能性があるので、公式ドキュメントはしっかりみましょう。

Heroku で Postgres Databases をデータベースとして使用しているシステムを作成しているのですが、もうすぐ容量がいっぱいになるよとメールの通知がきました。

それは困るので、メールに記載されているURLにアクセスし、確認しました。
https://devcenter.heroku.com/articles/upgrading-heroku-postgres-databases#upgrade-with-pgbackups-copy-default

さらに、他にも
http://qiita.com/shu_0115/items/3242b30954251c5803c4
も閲覧して、データベースの移行方法を調査しました。

作成した作業は以下の通り。
HEROKU_POSTGRESQL_COLORは、実際に定義されていた環境変数ではなく、Heroku Postgres アドオン追加時にCOLORの部分が違った環境が設定されるので、環境に合わせてください。
## メンテナンスモードに移行
# heroku maintenance:on --app herokuapp
## メンテナンスモードの確認
# heroku maintenance --app herokuapp
## データベースのバックアップ
# heroku pgbackups:capture --expire --app herokuapp
## バックアップの確認
# heroku pgbackups --app herokuapp
## データベースの移行
# heroku pg:copy DATABASE_URL HEROKU_POSTGRESQL_COLOR --app herokuapp
## デフォルトデータベースの変更
# heroku pg:promote HEROKU_POSTGRESQL_COLOR --app herokuapp
# 再起動
# heroku restart --app herokuapp
## メンテナンスモードの終了
# heroku maintenance:off --app herokuapp
## その確認確認
# heroku maintenance --app herokuapp
また、本番環境でいきなりテストは怖かったので、テスト環境を準備できるのなら、
無料のプラン Hobby Dev が複数 Heroku に追加できるので、それでテストができます。


2015年4月5日

Spree のデモサイトのインストールメモ

Spree をインストールしてみたので、メモ。
注意として、デモサイトとしてインストールしたので、

  • 日本語化してない
  • デモ用のデータが入っている
という感じです。

  1. CentOS minimal のインストールを実施
    下記を参考にしてインストールしてみてください。
    参考:CentOS 6.5 x86_64 minimal インストールログ
    参考:CentOS 6.5 minimal を vagrant 風にする手順
  2. rails をインストールするためのパッケージをインストール
    screen, zsh, git, gcc, gcc-c++, openssl-devel, libffi-devel, readline-devel, sqlite-devel
  3. rbenv のインストール
  4. Bundlerのインストール
    gem install bundler
  5. iptable の設定
  6. epel インストール
  7. nodejs の追加
  8. nokogiri の追加
  9. ImageMagick のインストール
    sudo yum install ImageMagick ImageMagick-devel
  10. MySQL をインストール
    sqlite3 で spree が動かなかったので、MySQLで実施してみる。Postgres でもいいと思う。
  11. spree のインストール
    https://github.com/spree/spreeを参考にインストール
    $ gem install rails -v 4.2.1
    # devise gem の追加
    # Database を mysql2 に変更する設定の追加
    $ gem install spree
    $ rails new my_store
    $ spree install my_store
    $ cd my_store
    $ bundle exec rake railties:install:migrations
    $ bundle exec rake db:migrate
    $ bundle exec rake db:seed
    $ bundle exec rake spree_sample:load
  12. "rails s -b 0.0.0.0" で起動

2015年3月1日

仕事用のクラウドソーシングツールをバージョンアップした。

自己満足ですが、案件管理のツールをバージョンしました。

bootstrap で material design を実現するデザインを適応しました。
http://fezvrasta.github.io/bootstrap-material-design/

また、「Scrape」ボタンを押すと、あらかたのクラウドソーシングサイトからスクレイピングして勝手に案件を追加してくれます。
「アーカイブ」ボタンを押すと、案件をクローズして、ソート順が一番最下位になるようにしているので、クラウドソーシングのサイトの案件で自分で合うものだけをまとめる事ができるようになっています。

レスポンシブデザインになっているので、スマートフォンでも、それなりに見れるようになってます。
これで外出先でも案件調査が簡単になります。

たのしい。




2015年2月18日

Kimono を使って仕事用にクラウドソーシングのスクレイピングツールを作った

フリーランスで仕事していく中で、クラウドソーシングサイトを色々見ているのですが、
いろいろ多いので、一括してみるためのWebアプリを作りました。

作成は、Ruby on Rails と、
Kimono という スクレイピングして Web api を簡単に作れるサービスを使って作りました。





Kimono は、本当にすごくて簡単に Web api が作れます。
去年スタートアップした企業なので、ちゃんと継続するかどうかが心配な所なので、
頑張って欲しいです。


2014年9月21日

CentOS6.5/ruby 2.0 で crub のインストールがうまくいかない時の対処法

Ruby on Rails で使用するために
gem install crub
が必要な時に CentOS6.5でエラーが出ました。

ここでは、エラーに対処してインストールする方法を記載します。




  1. libcurl-devel をインストール
    $ sudo yum install libcurl-devel
  2. crub のインストール
    $ gem install crub
      Or
    $ bundle install

CentOS6.5/ruby 2.0 で nokogiriのインストールがうまくいかない時の対処法

Ruby on Rails で使用するために
gem install nokogiri
が必要な時に CentOS6.5でエラーが出ました。

ここでは、エラーに対処してインストールする方法を記載します。


  1. EPEL Repo をインストール
    $ sudo rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
    $ sudo vi /etc/yum.repos.d/epel.repo
     # # enabled=1 → enabled=0
  2. libxml2 と libxslt をインストール
    $ sudo yum install libxml2 libxml2-devel
    $ sudo yum install libxslt libxslt-devel
  3. nokogiri のインストール
    $ gem install nokogiri
      Or
    $ bundle install

2014年9月19日

Password received System "passend" Release !


Password received System "passend" Release.

Usage

  1. You register an account.
    1. Click "Sign up"
    2. Click Mail link
  2. System Login
  3. Click "New Message."
  4. Put a password and Email list of comma-separated. then  Click Button.
  5. Do not send mail. And, Password watch in Inbox Once you are Login.
    Usage:

  6. I delete messages in 1 week.

Site


Github

https://github.com/masoo/passend



パスワード受け取りシステム "passend" をリリースしました


パスワード受け取りシステム "passend" をリリースしました

使い方

  1. アカウントを作成します
  2. 「New Message」をクリックします


  3. パスワードと、カンマ区切りのEメールのリストを書いてボタンをクリック。


  4. メールは送信しませんが、対象のメールアドレスでログインすると、Inboxにパスワードがあります。
  5. 1週間でメッセージは削除されます。

サイト


Github


2014年9月15日

細かくて伝わらない Rails メソッド

http://blog.livedoor.jp/sasata299/archives/51718602.html
で紹介されているのを知って、これは便利と思いました。

  • Object#presence メソッド
  • Object#try メソッド

Cocuu でも使っていきたいと思います。

2014年9月8日

Rails エラーページ処理まとめ

いろいろなサイトで紹介されていますが、 rails ではエラーページのカスタマイズができます。

http://yuuxxxx.hatenablog.com/entry/2013/08/29/205741

Cocuu では静的なエラーページを作成しています。
また、レイアウトを使ってする方法もありますが、エラーページなのに処理コストがかかりそうなのでやめました。

参考ページ:
http://qiita.com/ytr_i/items/fb1ea251197003deec12
http://d.hatena.ne.jp/ria10/20121222/1356159271
http://wearestac.com/blog/raising-and-rescuing-custom-errors-in-rails


2014年7月3日

heroku にデブロイした時に注意すべき assets pipeline

http://rails.hatenadiary.jp/entry/2013/03/03/125801

Assets Pipeline の説明を掲載している記事です。

Assets Pipeline は production モードでデフォルトで起動する仕組みです。

heroku にデブロイした時に注意する事は、
heroku run rake assets:precompile --app heroku-app-name
としないと、プリコンパイルされていないようです。

2014年7月2日

rails でフォロアー機能の実装について書かれた記事を見つける

http://www.railstutorial.org/book/following_users

こちらで、フォロアー・フォローしている人の実装が書かれています。
テーブル構造を表にしてくれているので、とても分かりやすいですね。


2014年7月1日

Rails で render を呼び出した後は、勝手に return されない

http://d.hatena.ne.jp/LukeSilvia/20070720/1185190733

古い記事ですが、Rails で render を呼び出した時、そこで return される訳ではないという話。

気を付けよう。


2014年6月29日

Rails で DDD する話

http://a-suenami.hatenablog.com/entry/2013/12/06/092146

Cocuu では、上記リンクを参考に、ドメイン駆動設計を実践してみました。

コントローラーが肥大化せずにイイ感じな気がします。

2014年6月28日

Rails に ckeditor を導入する

https://github.com/galetahub/ckeditor

で公開されている Rails に ckeditor を導入する gem をインストールしましょう。

Gemfile に
gem 'carrierwave'
gem 'mini_magick'
gem 'ckeditor'
を追記し、
$ bundle install
$ rails generate ckeditor:install --orm=active_record --backend=carrierwave
と実行します。
ORMやImageMagickのラッパーの違いでオプションが違うので注意しましょう。

2014年6月27日

CentOS 6.5 minimal 上の Rails で ImageMagick を使う方法

CentOS 6.5 minimal 上の Rails で gem rmagick を使用しようとして、
gem install rmagick としてもコンパイルエラーとなってインストールできません。
minimal だから ImageMagick がインストールされていないんです。

その場合、不足しているライブラリをインストールすると gem install rmagick がコンパイルエラーとならず上手くインストールができます。

$ sudo yum install ImageMagick ImageMagick-devel


2014年6月26日

CentOS 6.5 minimal に rbenv をインストール

CentOS 6.5 minimal に rbenv をインストールした時の記録です。
私は zshシェルを使用していますので、 ~/.zshrc に書き込んでいますが、bashの方は、 ~/.bashrc に書き込んでください。
この手順では、 cruby 2.0.0-p481 をインストールしています。


  1. git のインストール
    $ sudo yum install git
  2. gcc のインストール
    $ sudo yum install gcc
  3. openssl devel のインストール
    $ sudo yum install openssl-devel
  4. rbenv のインストール
    $ cd
    $ git clone git://github.com/sstephenson/rbenv.git .rbenv
    $ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc
    $ echo 'eval "$(rbenv init -)"' >> ~/.zshrc
    $ exec $SHELL
    $ git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
    $ echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.zshrc
    $ echo "gem: --no-ri --no-rdoc" > ~/.gemrc
    $ rbenv install 2.0.0-p481
    $ rbenv global 2.0.0-p481


2014年6月25日

Rails で多対多のリレーションを作成する方法

Rails で多対多のリレーションを持ったテーブルを作るためには、中間テーブルの作成が必要です。

例をあげましょう。

  • User テーブル
  • Book テーブル
という二つのテーブルを多対多のリレーションで結ぶ場合、中間テーブルとして
  • BookUser テーブル
が必要となります。ちなみに、中間テーブルの名前をここでは「BookUser」としていますが、どんな名称でも問題ないはずです。

中間テーブルを意識しないアクセスを実現するには、

Book クラス内に

  has_many :book_users
  has_many :users, :through => :book_users

User クラス内に
  has_many :book_users
  has_many :books, :through => :book_users


が必要となります。



参考URI:
http://7mi.wkeya.com/archives/611
http://blog.notsobad.jp/post/70028473972/has-many-through

Pundit の解説記事を発見

Pundit の英語の解説記事

英語が分からなくてもソースコードを見れば、どのように認可をしているかが分かります。

http://www.elabs.se/blog/52-simple-authorization-in-ruby-on-rails-apps

Rails 4.1 では、authorization にぜひ、 Pundit を使用してみましょう!

2014年6月24日

rake db:reset とrake db:migrate:reset の違い

以下のサイトで紹介されていました。

rake db:resetとrake db:migrate:resetの違い

db:reset は db/schema.rb
db:migrate:reset は db/migrate/*

をもとにデータベースが構築されるという違いがあります。

そういう事なので、
rails g migrate でテーブルを作成した後に、やっぱり無かった事にしたい時は、
rake db:migrate:reset を使いましょう。

rake db:reset だと、 db/migrate/* との不整合でおかしくなる時があります。