スキップしてメイン コンテンツに移動

投稿

ラベル(Ruby on Rails)が付いた投稿を表示しています

Rails 日本語化 / i18n

Rails4.0のWebを日本語化します。 i18n というプラグインを使います。 i18n インストール まずは、入っているか確認します。 $ gem list | grep i18n i18n (0.6.9) 見つかればOKだそうです。大抵入ってるんですかね。入ってなかった場合の事をちょっと探してみましたが出てきませんでした・・。 デフォルトのロケールをjaに変更 .config/application.rb のデフォルトロケールを修正します。 config.i18n.default_locale = :ja Githubから日本語の辞書ファイルを取得 svenfuchs/rails-i18n から日本語の辞書ファイルを .config/locales に取得します。 $ wget https://raw.github.com/svenfuchs/rails-i18n/master/rails/locale/ja.yml -P config/locales/ これで、更新ボタンとか標準的なものは日本語化されるはずです。 日本語ラベルの作成 ラベルは、既存のラベルを参考に、こんな感じで作成します。 ja: test_category: test_value: 日本語 erbで呼び出す時は、 <%= t('test_category.test_value') %> で呼び出せます。 もっと、多階層化もできそうです。 自作クラスなどの日本語訳を記述 各クラスの日本語訳は、こんな漢字で書きます。 activerecord: attributes: check: # クラス名 title: チェックタイトル # ラベル これでガシガシ日本語化できます。 本当は多言語化(アドレスを見てどの国からアクセスされてるかをチェックして、localeを変更)までしたいですが、それはまた今度。。 追記 気がついたら、 rails s でワーニングが出てました。 I18n.enforce_available_locales will default to true in the future....

RailsアプリをHerokuに登録

Rails4.0アプリをHerokuに登録してみます。 Herokuにユーザー登録 https://www.heroku.com/ にアクセスし、指示にしたがってユーザ登録します。 Heroku Toolbelt をインストール ユーザ登録したら出てくる画面のリンクから、ツールをインストールします。Herokuのコマンドラインクライアントらしいです。これで、もうHerokuが使える状態だとか。簡単すぎる・・・。 $ Heroku login で、ログインできてしまいます。 Rails アプリの準備 RailsアプリをHerokuに登録する準備をします。Gemfileを修正します。 group :development do gem ‘sqlite3’ end group :production do gem ‘pg’ gem ‘rails_12factor’ end 無償版Herokuで使えるDBがpostgresqlとの事で、その準備ですね。rails_12factorは、Rails4がHerokuでうまく動く様にするためのライブラリだそうです。 記述が終わったら bundle install --without production をします。 DBの設定を変更します。 config/database.yml の production: の記述を以下の様に変更します。 production: adapter: postgresql encoding: unicode database: pool: 5 username: password: gitの準備 Railsアプリのあるフォルダに移動しておきます。 gitignoreを簡単に編集できるツール gibo をインストールしておきます。 $ brew install gibo .gitignore の編集を、giboを使ってします。 gibo OSX Ruby Rails SASS SublimeText >> .gitignore ちょっと、何をしているのか、分からなくなって来ましたが・・・、とりあえず進めます。 .gitignore から、 config/initializ...

Rails のデバッグ

Railsのデバッグ方法のメモ。 Controller logger.debug(@test) View <%= debug @test %> オブジェクトの中身を調べる <%= @test.inspect %> 今まで、これを知らずによく作業を続けたな。。。我ながら・・・なんというか・・・恥ずかしい。。 参考 【便利】Rails でのデバッグ方法を知れば開発が楽になる!

Rails タグ付け機能を acts-as-taggable-on / Tokenfield for Bootstrap で簡単実装

Railsのアプリにタグをつけてみます。そもそもこれがやりたくてWebアプリを作りはじめたんだったっけ。 acts-as-taggable-onを使います。Rails + タグ機能で検索して、一番できた気がしたので。 環境 rails 4.0.2 ruby 2.1.0dev acts-as-taggable-on 3.1.1 インストール Gemfile に以下を追記します。 gem "acts-as-taggable-on" bundle install を実行します。 余談ですが、デザリング環境で bundle install が実行できない件、なんとかしたいです。見えないプロキシが働いてるのか・・・。うまく行ってほしい。。 マイグレーションのインストール(?)をします。 bundle install を実行すると、次にこれをしなさいと言われます。 rake acts_as_taggable_on_engine:install:migrations マイグレーションをします。 rake db:migrate これで準備完了です。 タグ付けしたいモデルにタグを設定 タグをつけたいモデルに以下を追記します。 acts_as_taggable # Alias for acts_as_taggable_on :tags これだけ。これだけ! UIからタグを設定 タグの入力には、 Tokenfield for Bootstrap を使ってみます。 初めは’jQuery-Tags-Input’を使うつもりだったのですが、Bootstrapの見た目との相性が悪かったので、やめました。 インストール bootstrap-tokenfield から、ソースコードをダウンロードします。 /app/assets/javascripts に取得したソースコードの /dist/bootstrap-tokenfield.jp をコピーします。 /app/assets/stylesheets に、取得したソースコードの /dist/css/bootstrap-tokenfield.min.css をコピーします。 UIを作成 対象モデルの作成フォームに以下を追記...

Gemfileに github: xx って書いたら、Proxy環境のRailsでbundle installに失敗した

Bootstrap3を使うために、Gemfileに追記をしたら、Proxy環境のRailsで bundle install にエラーがでました。 Gemfileへの追記 gem "twitter-bootstrap-rails", github: "seyhunak/twitter-bootstrap-rails", branch: 'bootstrap3' 実行エラー $ bundle install : fatal: Unable to look up github.com (port 9418) (Name or service not known) : MacのVagrant環境は大丈夫だったんだけどな。。Proxyって難しい。で、Proxy系のトラブルシューティングを探してやってみたけど治らず…。しばらく格闘しつつ、エラーの内容をよーく見ると、 Git error: command `git clone 'git://github.com/seyhunak/twitter-bootstrap-rails.git' とあることに気が付きました。あれ? clone は出来るはずなんだけどな。そういえば、アドレスが https://xx に成ってない。Gemfileの書き方って、ほかにもあるのかな?と思って、編集してみました。 gem "twitter-bootstrap-rails", :git => 'https://github.com/seyhunak/twitter-bootstrap-rails.git', branch: 'bootstrap3' これで上手く行きました。エラーの内容、ちゃんと読まないとダメですね。。この反省、何回目だろう…。 参考 Gemfileでのgem指定色々

RailsにBootswatch (Bootstrap3) のテーマを反映する

twitter-bootstrap-railsをインストールした環境 で、Bootstrap3のテーマをBootswatchに公開されているテーマに上書きします。 環境 Rails 4.0.2 Bootstrap 3.x 手順 vendor/assets/stylesheets/bootswatch を作成します。 $ mkdir vendor/assets/stylesheets/bootswatch [Bootswatch][2]で気に入ったテーマを選び、上記フォルダに variables.less と bootswatch.less をダウンロードします。 $ wget -P vendor/assets/stylesheets/bootswatch http://bootswatch.com/flatly/variables.less $ wget -P vendor/assets/stylesheets/bootswatch http://bootswatch.com/flatly/bootswatch.less 私はFlatlyが気に入りました。 app/assets/stylesheets/bootstrap_and_overrides.css.less に @import の記述を追加します。 @import "twitter/bootstrap/bootstrap"; @import "bootswatch/variables.less"; // 追加 @import "bootswatch/bootswatch.less"; // 追加 これで完了です。Webを表示させて、テーマが反映されている事を確認します。 参考 twitter-bootstrap-railsでbootswatchを使う http://bootswatch.com/

Rails4 に Bootstrap3 を適用

Rails4 に bootstrap3 を適応してみます。 Twitter Bootstrap for Rails を使います。 Twitter Bootstrap for Rails インストール Gemfileに以下の内、記述の無いものを追加します gem "therubyracer" gem "less-rails" gem "twitter-bootstrap-rails", github: "seyhunak/twitter-bootstrap-rails", branch: 'bootstrap3' branch:masterのseyhunak/twitter-bootstrap-railsは、Bootstrap 2.x 用のようです。Bootstrap 3.x を使うには、別のbranch:bootstrap3を使います。 初め、これに気づかずに、bootswatchのテーマが反映できずハマりました。。 bundle install を実行します bootstrap ジェネレータを使って、assetsへincludeを追加します rails generate bootstrap:install less layoutsとviewsを生成します rails g bootstrap:layout application fluid 最後の引数を fluid にするとレスポンシブデザインになるようです。固定したい場合は fixed を指定します。 既存の/app/views/layouts/aplication.html.erbを上書いていいか聞いてくるので、既存のファイルをバックアップしておいて、 y (上書き)を選択しました。 変わりました!ガッツリ雰囲気変わりました。成功だと思います。 参考 Twitter Bootstrap for Rails 3.x - 4 Asset Pipeline RailsアプリにBootstrapを適用させる

Rails Ajax からのコールで redirect_to が動かなかった時のメモ

Rails でチェックボックスのクリックからjQueryのAjaxでRailsのコントローラのメソッドをコールして、そこから redirect_to しようとしてうまく行かなかった時のメモ。 リダイレクトしているメソッドのリダイレクトのコードを redirect_to projects_path から、 render :js => "window.location = '/projects'" に変える事でうまく動く様になりました。Ajaxからコールする場合はこうするんですね。ドットインストールの Railsのチェックボックスを使うレッスン (こっちは render nothing: true )を参考に、チェックボックスを作って、そのページの状態を変えるためにリダイレクトしようとしてしばらくハマりました・・・。 参考 Rails 3: How to “redirect_to” in Ajax call?

CentOS に Ruby on Rails 環境をつくる

Rails の環境を作ります。CentOSは、Windows上のVagrantです。やってみます。 rbenvインストール まずは、gitをインストールしておきます。 sudo yum install -y git rbenvをGitHubから取得します。 git clone https://github.com/sstephenson/rbenv.git ~/.rbenv rbenvをpathに通します echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile rbenv initコマンドを呼び出すようにします echo 'eval "$(rbenv init -)"' >> ~/.bash_profile ちょっと、良くわからなくなって来ましたが、、、続けます。 シェルを再起動します。 exec $SHELL -l これで、rbenvの設定が終わったので、ちゃんと入ってるか、確認します。 rbenv rbenv 0.4.0-97-gfe0b243 Usage: rbenv [ ] ちゃんと入りました。 rbuy-buildインストール rbenv isntall コマンドをつかうために、 ruby-build をインストールします。 git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build rbenv install が使える様になりました。 Rubyインストール Ruby をインストールします。2014/04/23 現在の安定版は、2.1.1とのことなので、それを入れてみます。 rbenv install 2.1.1 インストールが終わったら、rehash というのをやっておきます。新しいバージョンの Ruby をインストールしたりしたら、実行するそうです。 rbenv rehash インストールされている Ruby の確認をしてみます。 rbenv versions * system...

rails s で already running って怒られた時の対処

Ruby on Railsのメモ。 rails s で、xx already running xx ってエラーが出た時の対処法。 ps ax | grep ruby で、出てきた rails s のプロセスに対して、 kill -9 xxxx これで、OK。 こちらを参考にさせて頂きました。 WEBrickがA server is already runningの場合の対処

CheckListApp#7 ヘッダーフッターを少し整える

ヘッダーに、チェック項目の一覧に行くリンクを追加したいと思います。毎回アドレスを指定するのは非効率だと思うので。 ヘッダーにチェック項目一覧を用意しようと思います。テンプレートファイル(app/views/layouts/application.html.erb)を編集します。 <body> <head> <h3>Self Check Lists</h3> <%=link_to "checks", checks_path %> </head> <%= yield %> <footer> <p><small>et79&copy;2014</small></p> </footer> </body> ついでにコピーライトのフッダーも追加してみました。 いずれ、 Bootstrap を使って飾るつもりなので、貧相なのは勘弁して頂きたいです。

CheckListApp#6 チェック項目の作成フォーム

チェック項目の追加フォームを作ります。やっとだ。作るのは、 new メソッドと create 。 new で作ったデータを元に create でセーブするイメージでしょうか。 まずは、チェック項目の一覧(app/views/checks/index.html.erb)にnewメソッドへのリンクを貼ります。 <h1> Checks <%= link_to image_tag('icon_plus_alt2.png',size: '25x25'), new_check_path %> </h1> タイトルの横に+ボタンを配置してみました。 次は、コントローラ /app/controllers/checks_controller.rb に new メソッドを作っていきます。 def new @check = Check.new end ここはこれだけ。で、呼び出されるビュー app/views/checks/new.html.erb を作っていきます。ここでは、チェック項目の内容を登録するフォームを作ります。 <h1>Create Check Item</h1> <%= form_for @check do |c| %> <p> <%=c.label :title %> <%=c.text_field :title %> </p> <p> <%=c.label :contents %> <%=c.text_area :contents %> </p> <p> <%= c.submit %> </p> <% end %> で、最後に create メソッドの作成。 def create @check = Check.new(check_params) @check.save redirect_to checks_pat...

CheckListApp#5 チェックデータ作成/詳細表示

チェックデータの作成 / rails console DBにチェックデータをダミーで登録してみます。アプリを作ってもデータが入ってないと確認ができません。 rails console を使います。 $ rails console > c = Check.new( title: "testTitle", contents: "Test contents." ) > c.save これでチェック項目が出来ました!簡単。ウェブを立ち上げ直すと、項目が追加できている事が確認できます。 詳細表示部 チェック項目の詳細を表示します。まずは、一覧(views/checks/index.html.erb)の項目に詳細へのリンクを貼ります。 <h1>Checks</h1> <ul> <% @checks.each do |check| %> <li><%= link_to check.title, check_path(check.id) %></li> <% end %> </ul> で、check_path を表示させるに show メソッドを作ります。 rake routes をすると何を作れば良いのかがわかります。 Prefix Verb URI Pattern Controller#Action checks GET /checks(.:format) checks#index POST /checks(.:format) checks#create new_check GET /checks/new(.:format) checks#new edit_check GET /checks/:id/edit(.:format) checks#edit check GET /checks/:id(.:format) checks#show PATCH /checks/:id(.:format...

CheckListApp#4 チェック項目のコントローラ/一覧の作成

Checks コントローラの作成 チェック項目のコントローラを作ります。 $ rails g controller Checks<br /> Checkモデルを作ったら、コントローラーは複数形のChecksで作るんですね。。 で、次はルーティングの作成。 config/routes.rb を開き、以下を追記 resources :checks rake routes で、結果を確認します。いろいろ出来ました。 チェック項目の一覧を作成 チェックの一覧を作ります。コントローラ(app/controllers/checks_controller.rb)に、indexメソッドを追加します。 def index @checks = Check.all end これで、変数checksで、すべてのチェック項目にアクセスできる様になります。 次は、viewを作ります。作成したメソッド名(index)に合わせて、app/views/checks/ 以下に index.html.erbを作成します。 コントローラで作成した Checks にeachで順次アクセスし、チェックタイトルのリストを表示します。 <h1>Checks</h1> <ul> <% @checks.each do |check| %> <li><%= check.title %></li> <% end %> </ul> これだけで、’localhost:3000/checks’ で一覧にアクセスできるようになりました。素晴らしいー。今は、項目がないので、全くおもしろくないですけど・・・。なので、次は、データの中身を作って見たいと思います。少しずつ、楽しくなって来た。まだ、 ドットインストール をなぞってるだけですけど・・・。 参考 Ruby on Rails 4入門

rake コマンドのエラー/bundle exec

rake routes をしたらエラーが出た。 Gem::LoadError: You have already activated rake 10.2.2, but your Gemfile requires rake 10.1.1. Using bundle exec may solve this. いつの間に新しいやつが activated されたんだ・・・。よくわからん。。 Gem で指定した rake を使う様に実行。 bundle exec rake routes コマンドは、通ったっぽい。 これをプリフィックスにつける設定もあるらしい。難しいなー、rails。。 参考 You have already activated rake 10.0.4, but your Gemfile requires rake 10.0.2 ... Bundler再履修: bundle execって何? gemはどこに入るの?

CheckListApp#3 チェックオブジェクト作成

チェック項目モデルを作ります。属性は、 タイトル(文字列) コンテンツ(長い文字列) かなり寂しいけど、まずはこれで。 ホントは、登録ユーザとか、リンクとか、いろいろやりたいけど、まずはこれで。目標は、早く形をつくる事。形ができたら、肉付けをしていきます。でも、ユーザー関連までは、やらないと、リリースできないな。。 $ rails g model Check title contents $ rake db:migrate 属性の型を指定しないと、string型になるらしいです。勢い余って、contentsもstring型にしてしまった。。text型に変えなくては、と思ったら、簡単には変えられないんですね・・。C言語のクラスとは違うんだな。。残念。 ちゃんとやる場合は、別の属性を用意して、入れ替えるみたいだけど、今はまっさらから作っているところなので、まずはモデルを消しちゃいます。 $ rails destory model Check ファイル(app/models, db)を見た感じ、消えてる風なので、これで行ってみます。ダメだったら、やり直そう。2回目は1回目よりずっと早く進むから、きっと大丈夫。この事に気がついてから、いろんな事に対して心が楽になったきがします。 さて、やり直します。 $ rails g model Check title contents:text $ rake db:migrate 残念、ダメだ・・・。何だ、すでにテーブルができてるって言われる。 くそー。全てをイチから作り直した方が早そうだけど、、もう少し粘ってみます。destory した後に、一旦 db:migrate をかけてみよう。 $ rails destory model Check $ rake db:migrate $ rails g model Check title contents:text $ rake db:migrate ダメだな。調べてみよう。。 [数分後] 分かりました。 rake db:migrate:reset でいいんだ。 $ rake db:migrate:reset ふぅ。とりあえず、うまく行きました。 今は、まっさらな状態だからいいけど、一回作っちゃうと、面倒なんです...

CheckListApp#2 アプリケーションの新規作成

まずは、アプリケーションの作成から。 rails new checkListApp とりあえず、立ち上げてみます。 cd checkListApp rails s エラーが出ました。Gemfile の therubycaser を使える様にしないと。 vi Gemfile gem 'therubyracer', platforms: :ruby ↑コメントを外す。で、bundle install実行。 bundle install これでうまくいくはず。 rails s よし。うまく行きました。まずは、ここからですよね。次は、チェックオブジェクトを作ります。

CheckListApp#1 設計図

Ruby on Rails の勉強の為に、チェックシートのWebアプリを作ってみます。はじめての制作なので、一部始終をメモにとってみたいと思います。 作りながらなので、ちょいちょい内容編集するかもしれません。すみません。 作りたいモノ 紙やエクセルのチェックリストシートを自分様にコピーして使うイメージ チェック項目は、 全チェックリスト共有のモノを用意 カテゴリータグがつけられる ユーザは、 チェックリストプロジェクトが作れる 共通チェック項目と、結果(実施チェック、コメント)を書くフィールドがあるチェックリストが現れる 自分で作成したチェックリストの一覧を見ることができる 手書きのイメージ こんなイメージを何枚か書くところから、始めました。 モデル チェック項目 共通チェック項目を持つ チェック結果 プロジェクトで生成され、チェック項目と紐付き、チェック項目に対する各プロジェクトでの状況(実行済み/コメント)を保持する プロジェクト チェック項目/チェック結果の一覧を作製、表示する ユーザ プロジェクトを作製する 開発環境 OS:vagrantのCentOS rails:4.0.2 ruby:2.1.0dev 上手く書けていませんが、こんな感じのものを作ってみようとおもいます。力尽きませんように。。 作ろうと思った背景 今の業務で、エクセルによるセルフチェクを行っていますが、このチェックリストはドンドン肥大化する傾向にあります。ただし、実際には関係の無い項目も多数あるので、カテゴリ分けを上手くやったら手数が省けるのでは?と考えました。でも実際やってみると、エクセルでカテゴリをつけると、1チェック1カテゴリに成ってしまい、あまりスマートに行きません。そこで、タグ付が上手く行く予感がしたので、勉強したいと思っていたWebアプリでトライしてみることにしました。

Amazon Affiliate